PHP开发中的缓存加速技术
除了从代码级别来提高PHP的运行速度,就要考虑采用缓存加速技术了。
到目前为止有一些可选的解决方案,包括eAccelerator,APC,Zend Platform for Performance Suite(付费),PHP Accelerator等。
这些都是属于缓存模块,他们会把第一次对.PHP 文件的请求产生的中间代码存储在Web服务器和内存中,然后对以后的请求返回“编译好”的版本。
这样减少了磁盘读写,而且都在内存中工作,因此使用eAccelerator或APC这些工具能够很明显地提高PHP引擎的解释速度及客户端页面的装载时间。
下面介绍在Linux和Windows系统中如何使用eAccelerator 和 APC工具来加速缓存。
eAccelerator
eAccelerator的官方网站为https://eaccelerator.net,它分为UNIX和Windows版本两种,你可以根据自己的环境下载安装。
下面介绍在Windows环境的安装和配置
在Windows环境下安装很简单,只需要到https://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_build 上下载和系统匹配的PHP 版本扩展库,如下载eAccelerator095_i284_5.2.1.dll(匹配PHP5.2),把它放置在PHP的扩展目录中,如c:phpext。
然后在PHP.ini配置文件中加上下面的语句,如果已经安装了Zend Optimizer,那么下面句子一定要在[ZEND]标识符的前面。
[eAccelerator]
zend_extension_ts=eAccelerator095_5.2.0.dll
eaccelerator.shm_size=”64″
eaccelerator.cache_dir=”d:/tmp”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.debug=”0″
eaccelerator.check_mtime=”1″
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
eaccelerator.keys=”shm_and_disk”
eaccelerator.sessions=”shm_and_disk”
eaccelerator.content=”shm_and_disk”
重启Apache 2的服务即可。
下面介绍在Linux环境中的安装和配置
#tar zxvf eaccelerator-0.9.5.tar.bz2
#cd eaccelerator-0.9.5
指定PHP所在路径
#export PHP_PREFIX=”/usr/lib/php”
#$PHP_PREFIX/bin/phpize
#./configure –enable-eaccelerator=shared –with-php-cofig=$PHP_PREFIX/bin/php-config
#make
#make install
这时,将eaccelerator安装到php目录中,屏幕会显示eaccelerator.so 所在路径,例如:
Installing shared extensions:
/usr/local/php/extensions/no-debug-zts-20060613
请记住这个路径,要在php.ini中加入该路径。
如果存在/etc/php.d目录中,需要复制eaccelerator.ini到该目录下,然后修改默认值。如果不存在,则修改php.ini ,在[ZEND]之前加入下面内容(注:必须放在[zend]段之前):
[eaccelerator]
extension=”/usr/local/lib/php/extensions/no-debug-zts-
20060613/eaccelerator.so”
eaccelerator.shm_size=”32″
eaccelerator.cache_dir=”/data/cache/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
建立缓存目录
#mkdir -p /tmp/cache/eaccelerator
#chmod 0777 /tmp/cache/eaccelerator
重启Apache服务器即可。
#service httpd restart 或apachectl -k restart
启动完成后,我们再查看phpinfo.php,就可以看到eAccelerator的信息了。
APC
APC的官方网站为:https://pecl.php.net/package/APC
安装和配置APC的步骤和方法如下:
1. Windows的APC扩展模块也是从https://www.sitebuddy.com/PHP/Accelerators/apc_windows_binaries_builds上下载php_apc.dll文件,然后复制到PHP扩展目录中,如C:phpext。
2. 编辑php.ini文件,将php_apc.dll装载到PHP系统中,如下
extension=php_apc.dll
3. 然后加入下面代码,用于APC的参数配置:
apc.enable=1
apc.shm_segments=1
apc.shm_size=64
apc.optimization=0
apc.num_files_hint=1000
apc.ttl=0
apc.gc_ttl=3600
apc.cache_by_default=On
apc.slam_defense=0
apc.file_update_protection=2
apc.enable_cli=0
apc.stat=0保存后重启Apache服务器即可。
注意:为了避免冲突,这两个缓存加速器不要同时启用。
Need a translation service?
Please enter your personal details and we will contact you shortly
Words translated by CCJK
146,096,379Over 95% of our clients recommend our language services to others