[原创] 加速PHP程序

[原创] 加速PHP程序

出处 菜鸟油 ( http://www.noobu.com ) 作者:沧蓝  欢迎转载,转载请注明出处与作者,谢谢
<推荐> 本文的完美排版/最后更新修正版本:http://www.noobu.com/0514_eaccelerator.html  <推荐>



什么是Eaccelerator?

也许你从没听说过Eaccelerator,但是我想大家都应该听说过MMCache吧?Eaccelerator可以算是MMCache的“后继者”。这款软件的功能就是通过在内存中缓存PHP文件从而加速PHP程序的执行速度。由于MMCache的原作者被Zend挖走,MMCache的开发一直处于停滞状态。而Eaccelerator却借鉴了MMCache的优点而一直在不断的更新。


首先,到Eaccelerator的网站上确定最新版本的版本号,然后下载到主机上,解压,并切换至eaccelerator目录。

紧接着需要编译并安装Eaccelerator。不过在此之前,我们先要确定主机上安装后一些必须的组件。

在Debian上,执行:

apt-get install gcc cpp php4-dev

如果是CentOS或Fedora或其他yum的操作系统,现用 yum search 查找文件名,然后用 yum install 来安装。

确认这些必须的组件都安装完毕之后一步一步执行以下命令:

export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install

其中 PHP_PREFIX=”/usr” 为PHP的安装目录。

安装完成后,需要打开 php.ini 文件进行编辑,如果你不确定哪个是你的php.ini文件的话,请上传拥有以下内容的文件到服务器上,然后从浏览器中打开,寻找php.ini文件的路径:

<?php phpinfo(); ?>

在文件的最后,添加如下内容:
如果要把Eaccelerator安装为Zend的扩展:

zend_extension=”/usr/lib/php4/eaccelerator.so”
eaccelerator.shm_size=”16″
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″


如果要安装为PHP的扩展:

extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
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″

最后,建立Eaccelerator的工作目录:

mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

好了,一切搞定!重起Apache吧(/etc/init.d/apache restart)!

注意事项:每次升级PHP前,请务必完全卸载Eaccelerator,等PHP升级完毕后,再重新安装。




出处 菜鸟油 ( http://www.noobu.com ) 作者:沧蓝  欢迎转载,转载请注明出处与作者,谢谢
<推荐> 本文的完美排版/最后更新修正版本:http://www.noobu.com/0514_eaccelerator.html  <推荐>
绝对是一个好东西!
正是因为他我才决定采用php的
请问怎么验证eAccelerator已经生效了呢?我的/tmp/eAccelerator目录下为什么什么都没有?
看phpinfo
我是按照扩展zend的方法设置的,在php.ini最下面的设置如下:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.5.7
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.5.7
zend_optimizer.version=2.5.10


zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

;############setting by suran#######
zend_extension_ts="/usr/lib/php4/eaccelerator.so"
eaccelerator.shm_size="16"
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"
重起apache,没有出现错误提示,但在phpinfo中也没有eaccelerator的相关条目,楼上的朋友帮看看是怎么回事.
eaccelerator 放到 zend_optimizer 前面。
问题已解决,谢谢楼上几位朋友的帮忙
php.ini最后的设置为:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.5.10
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.5.10
zend_optimizer.version=2.5.10a
;zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so   ///忽略这一行
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
zend_extension="/usr/local/lib/php/extensions/20020429/eaccelerator.so"  ///用来替代忽略的一行,注意路径
eaccelerator.shm_size="16"
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那一行,现在没有问题了
eaccelerator,zend_optimizer,MMCache能否并存阿?还是只有其中某两个可以?
能否介绍一下用eaccelerator来进行php开发的例子?
yum 安装文件名是什么?没找到。