1 使用代码优化工具 zend_optimizer, 原理是通过检测zend引擎产生的中间代码,并且优化他 来提高速度
安装 zend_optimizer,在php.ini里添加
zend_optimizer.optimization_level=15 zend_extension="/path/to/ZendOptimizer.so" zend_loader.enable=Off
2 使用缓存模块 原理是在php文件被请求时,通过将你的php源码的中间代码存储在web服务器的内存中,对以后的请求直接提供内存中已经“编译“好的版本
这样可以最小化得减少磁盘的访问。 当你php源代码发生改变的时候,缓存的模块可以感觉到这些变化,并且重新载入.有Zend Cache,Afterburner Cache,APC
3 Web内容的压缩, 在发送给浏览器前压缩,在再浏览器接受后自动解压
大多数的浏览器都支持gzip的内容压缩,这意味这可以将web的内容发送给客户的浏览器前,可以先使用gzip进行压缩,浏览器在接受的时候会自动解压数据,
mod_gzip 是是Remote Communications提供的一个apache模块,可以解压静态页面,但是不能解压动态页面,如果想压缩动态页面 :一个办法是使用class.gzip encode.php(http://leknor.com/code/),只要在你的PHP脚本中的开头和结尾调用这个PHP类,就可以压缩你的页面内容。 在PHP4.0.4推出了一种新的输出缓冲的处理手段--ob_gzhandler,它的作用和上面介绍的类相同,但区别是你只要在你的php.ini中使用以下的句法就行了: output_handler = ob_gzhandler ; 直接在代码中加 ob_start(ob_gzhandler); 要注意的一点是:Netscape Communicator并不支持图象的压缩,所以将显示不出来。因此除非你的客户全部使用Internet Explorer,否则你必须禁止压缩jpeg和gif图象。其它文件的压缩应该没有问题,但是我建议你最好测试一下,
4 对于php来说主要的瓶颈是cpu,而静态页面的瓶颈是存储和网络。Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。
5 PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。
6、如果能够用文本就不要用图像,尽量减小图片的尺寸。
7、采用最新版本的 Apache ,并把 PHP 编译其中,或者采用 DSO 模式,尽量不要采用 CGI 方式。
8、修改 httpd.conf : # 关闭 DNS lookups,PHP 脚本只拿 IP 地址 HostnameLookups off # 关闭 htaccess 检测 AllowOverride none
9、如果系统瓶颈在MYSQL的数据操作上,可以考虑将Mysql拆分成多个端口甚至多个服务器并适当优化my.cnf ,这比使用单个端口速度提高不少。
10、以上所有的方法都是针对单机而言的,如果你觉得系统还是不够快,可以采用集群,负载均衡,缓冲技术。采用 Squid 作为缓冲,配置 Squid 的方法。