找回密码
 注册
查看: 3309|回复: 9

[原创] 加速PHP程序

[复制链接]
发表于 2005-5-14 17:19:12 | 显示全部楼层 |阅读模式
出处 菜鸟油 ( 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  <推荐>
发表于 2006-4-9 06:36:04 | 显示全部楼层
绝对是一个好东西!
正是因为他我才决定采用php的
回复

使用道具 举报

发表于 2006-4-28 17:17:42 | 显示全部楼层
请问怎么验证eAccelerator已经生效了呢?我的/tmp/eAccelerator目录下为什么什么都没有?
回复

使用道具 举报

发表于 2006-4-28 19:23:04 | 显示全部楼层
看phpinfo
回复

使用道具 举报

发表于 2006-4-29 09:59:00 | 显示全部楼层
我是按照扩展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的相关条目,楼上的朋友帮看看是怎么回事.
回复

使用道具 举报

发表于 2006-4-29 10:05:51 | 显示全部楼层
eaccelerator 放到 zend_optimizer 前面。
回复

使用道具 举报

发表于 2006-4-29 13:50:08 | 显示全部楼层
问题已解决,谢谢楼上几位朋友的帮忙
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那一行,现在没有问题了
回复

使用道具 举报

发表于 2006-7-2 14:46:39 | 显示全部楼层
eaccelerator,zend_optimizer,MMCache能否并存阿?还是只有其中某两个可以?
回复

使用道具 举报

发表于 2006-7-4 14:44:59 | 显示全部楼层
能否介绍一下用eaccelerator来进行php开发的例子?
回复

使用道具 举报

发表于 2006-7-4 22:23:30 | 显示全部楼层
yum 安装文件名是什么?没找到。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-7-16 16:46 , Processed in 0.059569 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表