欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

手动为LiteSpeed安装eAccelerator和XCache的方法分享

程序员文章站 2023-02-12 18:09:16
感觉很久没发VPS教程类的文章了,正好最近又开始玩起了LiteSpeed,就把安装eAccelerator和XCache的方法跟大家简单分享一下吧... 12-11-14...
其实这句话用“和”字不好,因为eaccelerator和xcache并不兼容,你只能忍痛割爱选择其一,但貌似eaccelerator对新版5.4的php支持不好,因此高版本的php,xcache算是更好的选择。至于两者的具体对比,不在本文的涉及之列,大家可以自行网络搜索~在阅读本文前,强烈阅读本站关于litespeed的相关教程,比如litespeed的安装方法面板的配置

其实litespeed在编译php的时候有这两个组件可选,但为什么微魔要单独手动安装呢?原因是官方的这两个组件勾选后经常出现无法解析等问题,这一问题和具体你使用的vps似乎无关,而和官网链接的时常抽风有关,因此,为了避免卡在compile php的第一步,可以暂时取消这两个组件,像本文一样,手动安装~

无论安装哪一个,请先确保/usr/local/lsws/lsphp5/lib/php.ini是否存在,若不存在,执行如下命令

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

无论你选择安装哪一个,最后都请在litespeed面板里graceful restart重启生效~
安装eaccelerator
1.安装必要的依赖文件(很多时候这一步其实是多此一举,但是为了避免出错,还是做吧~)

本文我以debian为例,至于centos,可以讲文中apt-get换成yum,基本可以通用~

apt-get install autoconf automake libtool m42.安装eaccelerator

可自行到官网查询最新版的下载链接,替换下面的url()

复制代码
代码如下:

cd ~
wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
tar jxvf eaccelerator-0.9.6.1.tar.bz2
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


如果你默认在litespeed里编译的是php 5.4,进行make的时候可能出现如下错误,原因可能是新版对5.4的不兼容造成的。要么改装xcache,要么就换php 5.3吧

复制代码
代码如下:

/home/package/eaccelerator-0.9.6.1/eaccelerator.c: in function ‘eaccelerator_restore’:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:878: warning: assignment discards qualifiers from pointer target type
/home/package/eaccelerator-0.9.6.1/eaccelerator.c: in function ‘eaccelerator_compile_file’:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:1317: error: ‘zend_class_entry’ has no member named ‘line_start’
/home/package/eaccelerator-0.9.6.1/eaccelerator.c: at top level:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:1913: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘eaccelerator_functions’
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:1938: error: ‘eaccelerator_functions’ undeclared here (not in a function)
make: *** [eaccelerator.lo] error

13.配置eaccelerator生效(这一部分在前面的文章里讲过,这里不多说了~)

复制代码
代码如下:

mkdir /usr/local/eaccelerator_cache
chmod -r 777 /usr/local/eaccelerator_cache
vi /usr/local/lsws/lsphp5/lib/php.ini

在php.ini文件末尾加入如下字段

复制代码
代码如下:

[eaccelerator]
zend_extension="/usr/local/lsws/lsphp5/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="1"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"

检测php.ini文件是否正常

复制代码
代码如下:

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

不出意外的话应该不会报错~

安装xcache
1.安装xcache(查看官网最新版本

复制代码
代码如下:

cd ~
wget http://xcache.lighttpd.net/pub/releases/3.0.0/xcache-3.0.0.tar.gz
tar zxvf xcache-3.0.0.tar.gz
cd xcache-3.0.0
/usr/local/lsws/lsphp5/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/lsws/lsphp5/bin/php-config
make
make install

make install后会给出一个目录,记下来备用,根据litespeed的版本不同,似乎这个目录名也不同~我的是/usr/local/lsws/lsphp5/lib/php/extensions/no-debug-non-zts-20100525/
2.修改php.ini文件

复制代码
代码如下:

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

在末尾加入以下内容

复制代码
代码如下:

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

其中,密码字段xcache.admin.pass可自定义,用md5加密你要的密码填入,比如

echo -n "vmvps" | md5sum

3.检验php.ini是否出错

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

如果出现如下错误

php fatal error: directive 'allow_call_time_pass_reference' is no longer available in php in unknown on line 0可以通过以下命令解决

perl -pi -e 's/^allow_call_time_pass_reference/;allow_call_time_pass_reference/' /usr/local/lsws/lsphp5/lib/php.ini

本文到此结束,还是那句话,无论你选择安装哪一个,最后都请在litespeed面板里graceful restart重启生效~