Zend Optimizer 是Zend官方发布的免费PHP优化器,国内外大多数用户对这一产品的唯一评价是“Zend Loader”。这种说法是因为该产品所谓的优化只是提供了一个页面压缩输出功能,其最主要的目的是为Zend相继推出的PHP代码“混淆器”铺桥搭路,让混淆后的PHP代码可以在计算机上得到执行。如果您打算真正获得高效PHP缓存,建议您选择 eaccelerator 。
Zend的市场推广能力非常之强,这样致使国内外大多数人采用Zend混淆器加密PHP代码。如果想使用被Zend混淆器加密过的代码,那么你必须安装Zend Optimizer。这就引出了我们的主要问题,如何既可以获得执行Zend混淆器加密代码的能力,又可以获得 eaccelerator 的高效率优化。
值得庆幸的是 eaccelerator 提供了对Zend扩展界面的支持,它可以和Zend Optimizer和平相处。让您轻松达到 “既可以获得执行Zend混淆器加密代码的能力,又可以获得 eaccelerator 的高效率优化”的目的。
我习惯性以ZEND扩展的方式配置该模块,下面是我使用的配置(官方标配):
在PHP.INI文件段,eaccelerator的配置内容写在Zend Optimizer之前,并做如下配置:
[Zend]
zend_extension_ts="d:\xampp\xampp\php\ext\eAccelerator.dll"
;eAccelerator加速器路径部分PHP版本此处使用 zend_extension
eaccelerator.shm_size="16"
;eAccelerator使用的内存
eaccelerator.cache_dir="D:\xampp\xampp\tmp"
;eAccelerator缓冲目录,记得给web server可读写权限。
eaccelerator.enable="1"
;eAccelerator是否启用
eaccelerator.optimizer="1"
;eAccelerator优化功能
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"
zend_extension_ts = "d:\xampp\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "d:\xampp\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 1
;开启Zend Loader以解析Zend混淆器加密过的PHP代码。默认开启,此行配置只是起到说明作用。
zend_optimizer.optimization_level=0
;禁止优化功能,避免冲突。
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
推荐按照Zend的扩展,打开php.ini文件, 找到extension=php_zip.dll, 在下面添加
win版
eaccelerator.shm_size="16" //根据你的系统内存来,默认16M,可以改成64M
eaccelerator.cache_dir="C:\php\tmp" //需要手动创建,WIN下例如C:\php\tmp,确保他的权限为可读写,并且以后不要动这个目录哦
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"
linux版
#tar zxvf eaccelerator-0.9.4.tar.gz
# cd eaccelerator-0.9.4
# /usr/local/php/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make
# make install
eaccelerator.shm_size="16" //根据你的系统内存来,默认16M,可以改成64M
eaccelerator.cache_dir="/tmp/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"
如果打开了安全模式,必须使用, "zend_extension_ts" 取代 "zend_extension".
查看php.ini 如果 "safe_mode"为off就不是安全模式
附:linux下创建缓存目录
chmod 0777 /tmp/eaccelerator
PHP扩展安装模式,打开php.ini文件, 找到extension=php_zip.dll, 在下面添加
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator" //需要手动创建,WIN下例如C:\php\tmp,确保他的权限为可读写,并且以后不要动这个目录哦
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"
eAccelerator可以和Zend兼容,但是上面的代码在 php.ini 必须定义与 Zend 的相关代码之前,虽然官方强烈建议,除非您必须使用Zend过的代码,否则最好不同时使用Zend和eAccelerator,但是两个一起用也不冲突,还能加速,为什么不用呢,呵呵
完成上面的工作以后保存您的 php.ini , 然后重新启动 apache或者IIS, 看看 phpinfo 是不是不一样了?然后看看 phpwind 页脚的执行时间是不是快了许多?
正确安装后,可以在phpinfo上的Zend部分看到类似如下的信息:(PHP版本不同,信息可能不同,我的是PHP4.3.11,一般出现with eAccelerator就是成功了)
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with eAccelerator v0.9.3, Copyright (c) 2004-2005 eAccelerator, by eAccelerator with Zend Extension Manager v1.0.6, Copyright (c) 2003-2004, by Zend Technologies with Zend Optimizer v2.5.7, Copyright (c) 1998-2004, by Zend Technologies
很简单的。操作前只要做好php.ini的备份即可,失败了大不了将备份的恢复过去。重起 apache或者IIS服务就行,呵呵,风险不是很大。
再看论坛经过加载eAccelerator以后运行,页脚执行时间由 0.02X 秒缩短至 0.01X秒...快了一倍多^_^
特别说明 :
1、如果您的系统已经装了ZEND加速器,那么上述配置在PHP.INI中必须放在ZEND的前面,否则Apache不能启动;
2、eAccelerator.shm_size="64",这里的64是加速系统使用做CACHE的内存,默认是16M;根据您系统内存调整;
3、eAccelerator.cache_dir="C:\php\tmp",这个是加速器工作时候产生临时文件的目录,