08 October 2016

安装环境

centos 6.8 linux redhat2.6 x86_64 
php5.5.26
nginx1.6.3
mysql5.5.32

PHP缓存加速器的种类和选择

常见的缓存加速器软件有:Xcache , eAccelerator , APC  ,ZendOpcache 等。

比较:

xcache : xcache效率高,速度快。 开发社区活跃。 支持高版本的php,如php5.5,5.6等。

eAccelerator : 安装及配置参数简单,加速效果不错。 文档资料多,但社区不是很活跃。 仅适合php版本5.4以下的程序。

APC: apc使用spinlocks自旋锁机制,缓存性能不错。 提供apc.php脚本,能够监控和管理apc缓存。 apc默认通过mmap匿名映射创建共享内存,缓存对象都存放在这内存区域里。

zendOpcache: 是php官方推出的新一代缓存加速软件,现在的稳定性还有待考验,可以尝试。

推荐使用:xcache -> eAccelerator -> apc -> zendOpcache

安装前解决包依赖

解决部分加速器软件的perl编译问题

1).配置环境变量 LC_ALL.
    echo 'export LC_ALL=C' >> /etc/frofile
    tail -1 /etc/profile
    source /etc/profile
    echo $LC_ALL
解决安装eAccelerator 时,提示:setting locale failed .please check that your settings;

2).安装perl 相关的软件依赖
yum -y install perl-devel ##需要提前安装perl相关的软件依赖包

安装Xcache缓存加速器

编译安装

cd /home/dnzhu/tools
wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
ls  xcache-3.2.0.tar.bz2
tar xvf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/opt/application/php/bin/phpize
./configure --enable-xcache --with-php-config=/opt/application/php/bin/php-config
make
make install
ls -l /opt/application/php5.5.26/lib/php/extensions/no-debug-non-zts--20121212/
cd ..

注意:xcache3.2.XX版本,2014年底发布,全面支持php5.1~5.6。

配置xcache参数

1).步骤
    extension=xcache.so
    #激活管理员认证
    [xcache.admin]
    xcache.admin.enable_auth=on
    xcache.admin.user="mOo"
    xcache.admin.pass="md5 encrypted password"
    [xcache]
    xcache.shm_scheme ="mmap"
    #共享内存块的大小,常设置为256m
    xcache.size=60M
    #指定cache切分成多少块,根据cpu的个数来定
    xcache.count=1
    #hash槽个数参考值
    xcache.slots=8k
    #设置数据的缓存周期,0 为永久,常用设置为86400
    xcache.ttl=0
    #回收内存数据间隔时间 ,常设置为3600
    xcache.gc_interval=0
    ;这几个值用于变量缓存,而不是opcode缓存
    xcache.var_size=4m
    xcache.var_count=1
    xcache.var_slots=8k
    xcache.var_ttl=0
    xcache.var_gc_interval=300
    #一般选择关闭,会影响性能
    xcache.readonly_protection=off
    #一般设置为/tmp/xcache这样的路径
    xcache.mmap_path="/dev/zero"
    #当xcache crash 后,把数据保存到指定路径
    xcache.coredump_directory=""
    #当xcache发生crash时,自动关闭xcache。
    xcache.disable_on_crash=off

    以上参数可以根据生产环境以及业务量的大小动态调整。

2).将配置信息导入php.ini文件中:
    cd /opt/application/php/lib/
    cat /home/dnzhu/tools/xcache-3.2.0/xcache.ini >> php.ini

3).重启php-fpm
    pkill php-fpm  #关闭
    ps -ef | grep php-fpm
    /opt/application/php/sbin/php-fpm  #重启

内核优化

xcache和eaccelerator均使用系统共享内存作为存储空间,因此可以调整系统共享内存大小参数。
tail /etc/sysctl.conf  内核参数文件,可以根据实际情况对参数进行调整。

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

echo -n "123456" | md5sum
生成密码:e10adc3949ba59abbe56e057f20f883e

vim php.ini
xcache.admin.enable_auth=on
xcache.admin.user = "dnzhu"
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"

复制xcache解压目录的管理程序到php站点目录下:
cd /home/dnzhu/tools/xcache-3.2.0
cp -a htdocs/ /opt/application/nginx/html/blog/xadmin
chown -R nginx.nginx /opt/application/nginx/ngnix/html/blog/xadmin
pkill php-fpm
/opt/application/php/sbin/php-fpm

访问地址:http://your-website/xadmin/index.php 根据自己配置的域名进行访问