全球主机交流论坛

标题: LiteSpeed安装eAccelerator/XCache实现php加速的攻略 [打印本页]

作者: lxfy    时间: 2010-10-15 17:55
标题: LiteSpeed安装eAccelerator/XCache实现php加速的攻略
首先确定你已经安装了LiteSpeed,且你的php.ini是正常的。

如果/usr/local/lsws/lsphp5/lib/php.ini不存在,那么

把 /usr/local/lsws/php/php.ini 复制到/usr/local/lsws/lsphp5/lib/目录下。

1. eAccelerator

应该是应用最广泛的开源加速了,安装步骤:

cd ~

wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.zip

unzip eaccelerator-0.9.6.1.zip

cd eaccelerator-0.9.6.1

/usr/local/lsws/lsphp5/bin/phpize

./configure --enable-eaccelerator=shared --with-php-config=/usr/local/lsws/lsphp5/bin/php-config

make

make install

然后在php.ini中增加内容。

vi /usr/local/lsws/lsphp5/lib/php.ini

在文件末尾加上:

extension_dir = "/usr/local/lsws/lsphp5/lib/php/extensions/no-debug-non-zts-20090626/"
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"

保存。然后测试php.ini是否合法:

/usr/local/lsws/lsphp5/bin/php -v

无误的话,就可以看到eA已经生效,并已正确显示版本。

最后别忘了:

mkdir /tmp/eaccelerator

chmod 777 /tmp/eaccelerator

完毕。

2.XCache

由于本人跑了个dz1.5,在后台发现内存优化中安装了eA却不能识别,搜索后发现dz不支持eA的最新版,于是只有安装XCache了。值得一提的是,XCache是国人参与作品。

注意,XCache和eA不能共存,如果你已经安装了eA,则需要把php.ini中新添加的关于ea的部分全部删除。

XCache安装如下:

cd ~

wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz

tar zxvf xcache-1.3.0.tar.gz

cd xcache-1.3.0.tar.gz

/usr/local/lsws/lsphp5/bin/phpize

./configure --enable-xcache --with-php-config=/usr/local/lsws/lsphp5/bin/php-config

make

make install

然后在php.ini中增加内容:

vi /usr/local/lsws/lsphp5/lib/php.ini

在文件末尾加上

extension_dir = "/usr/local/lsws/lsphp5/lib/php/extensions/no-debug-non-zts-20090626/"
extension="xcache.so"

[xcache-common]
;; install as zend extension (recommended), normally “$extension_dir/xcache.so”
;; or install as extension, make sure your extension_dir setting is correct
; extension = xcache.so
[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass =
[xcache]
xcache.shm_scheme =        "mmap"
xcache.size  =               32M
xcache.count =                 1
xcache.slots =                8K
xcache.ttl   =              3600
xcache.gc_interval =         300
; Same as aboves but for variable cache
; If you don’t know for sure that you need this, you probably don’t
xcache.var_size  =            0M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300
; N/A for /dev/zero
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"
xcache.cacher =               On
xcache.stat   =               On

保存退出。执行检测:

/usr/local/lsws/lsphp5/bin/php -v

如果一切顺利,就会显示XCache的版本了。

最后,Graceful Restart一次LiteSpeed。

Linkback: http://x-corner.info/post-49.html

[ 本帖最后由 lxfy 于 2010-10-15 17:56 编辑 ]
作者: Cat    时间: 2010-10-15 17:57
安装的时候不可以全部选择自动安装完了吗?

然后自己根据需要选择配置缓存就OK了...

不过还是感谢分享
作者: lxfy    时间: 2010-10-15 17:58
原帖由 Cat 于 2010-10-15 17:57 发表
安装的时候不可以全部选择自动安装完了吗?

然后自己根据需要选择配置缓存就OK了...

不过还是感谢分享

我装的时候没选,又不想重装一遍,于是手工装上了
作者: Cat    时间: 2010-10-15 18:02
标题: 回复 3# 的帖子
我是全部选择了...然后需要什么缓存,就自己配置php.ini就ok了
很方便啊
作者: winsock    时间: 2010-10-15 18:37
关于xcache,我补充下,截至两个月前我最后一次用xcache,针对fcgi多进程(我用spawn-fcgi跑的),它还是每个进程开辟一块内存,所以很容易变成设置了36MB内存,开了十个php进程,然后真正跑起来,刷一下400MB内存没了
作者: Globalization    时间: 2010-10-15 18:41
抗出c长处v
作者: zrdlrofmine    时间: 2010-10-15 19:47
这玩意疏忽没啥用
作者: kyo1    时间: 2010-10-15 20:24
不是据说Litespeed本身就很快了吗
作者: winsock    时间: 2010-10-15 20:30
xcache,eacc这些主要做php的opcode缓存的,不仅能提速,还能减少IO损耗,用处很大
作者: sunday    时间: 2010-10-15 21:44
原帖由 winsock 于 2010-10-15 18:37 发表
关于xcache,我补充下,截至两个月前我最后一次用xcache,针对fcgi多进程(我用spawn-fcgi跑的),它还是每个进程开辟一块内存,所以很容易变成设置了36MB内存,开了十个php进程,然后真正跑起来,刷一下400MB内存没了 ...


请教下:
eacc 是不是也是每个php进程一块内存的? 还是所有php进程一起用设置好的那个缓存

[ 本帖最后由 sunday 于 2010-10-15 21:47 编辑 ]
作者: Cat    时间: 2010-10-15 21:52
原帖由 sunday 于 2010-10-15 21:44 发表


请教下:
eacc 是不是也是每个php进程一块内存的? 还是所有php进程一起用设置好的那个缓存


eacc也有这个bug的..所以lnmp用ea的话...一个站点,可能看不出问题..但是多几个站点就悲剧了...

所以从一开始我就推荐用apc..但是apc和php几个版本不稳定没办法...

不过ls和ea应该没有这个bug
作者: winsock    时间: 2010-10-15 21:52
原帖由 sunday 于 2010-10-15 21:44 发表


请教下:
eacc 是不是也是每个php进程一块内存的? 还是所有php进程一起用设置好的那个缓存

eacc只开辟一块
作者: winsock    时间: 2010-10-15 21:54
原帖由 Cat 于 2010-10-15 21:52 发表


eacc也有这个bug的..所以lnmp用ea的话...一个站点,可能看不出问题..但是多几个站点就悲剧了...

所以从一开始我就推荐用apc..但是apc和php几个版本不稳定没办法...

不过ls和ea应该没有这个bug ...


eacc没这问题,我被xcache跑挂后换eacc一切正常。。。。。
作者: Cat    时间: 2010-10-15 21:59
标题: 回复 13# 的帖子
php5.3.3动态分配进程的.....

就是因为ea每个进程开个...导致php的进程无法回收...无论负载的高低.都保持最高进程数~~
作者: winsock    时间: 2010-10-15 22:04
原帖由 Cat 于 2010-10-15 21:59 发表
php5.3.3动态分配进程的.....

就是因为ea每个进程开个...导致php的进程无法回收...无论负载的高低.都保持最高进程数~~


5.3.3出问题倒是很有可能..........eacc追php版本一向比较落后....................我一直坚定的5.2.x...




欢迎光临 全球主机交流论坛 (https://www.iloc.eu.org/) Powered by Discuz! X3.4