第5章:安装配置PHP XCache缓存加速模块

一、认识XCache缓存插件

XCache是一个开源的,又快又稳定的PHP opcode缓存器/优化器,其项目leader曾经是Lighttpd的开发成员之一。XCache把PHP程序编译后的数据缓存到共享内存里,

避免相同的程序重复编译。用户请求相同的PHP程序时,可以直接使用缓存中已编译好的数据,从而提高PHP的访问速度,通常可以提升2-5倍,并大幅降低服务器负载开销,

很多公司使用XCache,它已经能在大流量/高负载的生产环境中稳定运行,与同类型的opcode缓存器相比在各方面都更胜一筹。例如:社区活跃、快速开发、能够快速跟进

PHP版本的更新。

二、安装XCache

wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
tar jxf xcache-3.2.0.tar.bz2 
cd xcache-3.2.0

#/usr/local/php5.4.30/bin/phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525

#./configure --enable-xcache --with-php-config=/usr/local/php5.4.30/bin/php-config
#make
#make install
Installing shared extensions:     /usr/local/php5.4.30/lib/php/extensions/no-debug-non-zts-20100525/


# ll /usr/local/php5.4.30/lib/php/extensions/no-debug-non-zts-20100525/
-rwxr-xr-x. 1 root root 702441 Apr 16 15:26 xcache.so        #最后生成xcache.so模块,表示xcache安装成功

三、整合php和XCache

1、现在配置XCache参数前加个配置分解符
echo -e ";xcache config by heboan 2016-4-16 " >>/etc/php.ini

2、编辑xcache.ini,修改xcache的参数配置(xcache解压目录下存在一个名字为xcache.ini的配置文件)
vim /root/xcache-3.2.0/xcache.ini
------------------------------调整认得关键参数---------------------------------------------
xcache.size  =               60M       --->xcache.size  =               256M        
xcache.count =               1         --->xcache.count =               2
xcache.ttl   =               0         --->xcache.ttl   =               86400
xcache.gc_interval =         0         --->xcache.gc_interval =         3600 
xcache.var_size  =           4M        --->64M
-------------------------------------------------------------------------------------------
以上参数需要根据生产硬件的大小,以及业务数据的访问量来调整

3、将修改后的xcache.ini合并到php.ini结尾
cat /root/xcache-3.2.0/xcache.ini >>/etc/php.ini 

四、重启php-fpm加载模块,检查是否生效

service php-fpm restart

# /usr/local/php5.4.30/bin/php -v
PHP 5.4.30 (cli) (built: Apr 14 2016 19:54:30) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
    with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo

五、Xcache使用系统的共享内存作为存储空间,因此有必要调整系统的共享内存大小参数

kernel.msgmnb = 65535
#Controls the maximum size of a message, in bytes
kernel.msgmax = 65535
#Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
#Controls the maximum number of shared memory segments, in bytes
kernel.shmall = 4294967296

六、配置web界面查看xcache缓存加速信息

1、通过输入字符串生产xcache管理员密码,这里使用md5sum命令生成密文密码
# echo -n "123456"|md5sum
e10adc3949ba59abbe56e057f20f883e  -

2、把修改php.ini中的xcache配置部分如下
#vim /etc/php.ini
...
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "heboan"
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"

3、复制XCache软件下面的缓存加速管理php程序到站点目录下
cd xcache-3.2.0
cp -a htdocs/ /data/www/heboan/xadmin
chown -R nginx.nginx /data/www/heboan/xadmin
service php-fpm restart

七、访问http://www.heboan.com/xadmin(用户名:heboan,密码:123456)

有关缓存Xcache的状态,命中等相关信息都可以通过这个页面查看

 

附:Xcache 配置文件参数详解

[xcache-common]

extension = xcache.so         #加载xcache.so,路径相对于extension_dir的配置

 

[xcache.admin]

xcache.admin.enable_auth = on     #激活管理员认证

 

xcache.admin.user = "heboan"
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"    #指定管理员用户名和密码,留空表示禁止管理页面

 

xcache.shm_scheme = "mmap"    #设置xcache如何从系统分配共享内存

 

xcache.size = 60M     #0为禁止缓存,非0则启用缓存。需要注意的是系统所允许的mmap最大值

  

xcache.count = 1    #指定cache切分成多少块,官方推荐设置为服务器COU的数量(grep -c processor /proc/cpuinfo)

 

xcache.slots = 8K    #hash槽个数的参考值

 

xcache.ttl = 0    #设定cache对象的生存期,0为永不过期

 

xcache.gc_interval = 0    #回收器扫描过期的对象回收内存空间的间隔,0为不扫描,其他值单位是秒

 

xcache.var_size = 4M

xcache.var_count = 1

xcache.var_slots = 8K

xcache.var_ttl = 0

xcache.var_gc_interval = 300   #这几个值和上面的几个类似,只不过用于变量缓存,而不是opcode缓存

  

;N/A for /dev/zero

xcache.readonly_protection = off    #如果启用了该参数,降略微降低性能,但会提高一定的安全系数,这个选项对于xcache.mmap_path = /dev/zero无效

 

xcache.mmap_path = "/dev/zero"    

#如果要启用该参数,请使用"/tmp/xcache"这样的路径,而不是"/dev/*",如果启用了xcache.readonly_protesction参数,不同进程组的PHP会共享同一个/tmp/xcache路径

 

xcache.coredump_directory = ""     #当XCache crash后,是否把数据保存到指定路径

  

xcache.disable_on_crash = off     #当XCache crash时,自动关闭Xcache缓存

 

posted @ 2016-04-16 21:14  sellsa  阅读(632)  评论(0)    收藏  举报