为了账号安全,请及时绑定邮箱和手机立即绑定

php优化

标签:
PHP


配置xcache插件加速

1.xcache.ini参数说明

  xcache软件的解压目录xcache-3.2.0下存在一个名为xcache.ini的配置文件,即为xcache的配置文件。参数说明如下:

xcache配置文件参数解释说明

[xcache-common]

extension = xcache.so

加载xcache.so,路径相对于extension_dir的配置。自3.0版本开始不再使用zend_extension加载xcache的方式

[xcache.admin]

xcache.admin.enable_auth = On

激活管理员认证

xcache.admin.user = “mOo”

xcache.admin.pass = “md5 encrypted password”

执行xcache管理员用户名和密码,密码根据md5加密产生,留空表示禁止管理页面
[xcache]开始xcache缓存参数配置段,下面所有的初始值即为默认值,除非明确说明。
xcache.shm_scheme = “mmap”设置XCache如何从系统分配共享内存
xcache.size  =  60M0为禁止缓存,非0则启用缓存。需要注意系统所允许的mmap最大值
xcache.count =   1指定将cache切分成多少块,官方推荐设置为服务器cpu的数量**
grep-c processor /proc/cpuinfo
xcache.slots =  8K只是作为bash个数的参考值,缓冲超过这个个数的内容没有任何问题
xcache.ttl   =  0设置cache对象的生存期TTL(time to live)
0为永不过期
xcache.gc_interval =  0回收期扫描过期的对象回头内存空间的间隔,0为不扫描,其他值的单位是
xcache.var_size  =     4M
xcache.var_count =      1
xcache.var_slots =      8K
xcache.var_slots =      0
xcache.var_gc_interval =  300
这几个值和上面的几个类似,只不过用于变量缓存,而不是opcode缓存
xcache.readonly_protection = Off如果启用了该参数,将会略微降低性能,但会提高一定的安全系数,这个选项对于
xcache.mmap_path = /dev/zero 无效
xcache.mmap_path =  “/dev/zero”对于*nix,xcache.mmap_path是一个文件路径而非目录。如果要启用该参数 请使用“/tmp/xcache”这样的路径,而是“/dev/*”如果开启了xcache.readonly_protection参数,不同进程组的PHP将不会共享同一个/tmp/xcache路径
xcache.coredump_directory =  “”当XCache crash后,是否把数据保存到指定路径
xcache.disable_on_crash =   Off当xcache发生crash时,自动关闭xcache缓存

有关更多参数说明请看配置文件对应注释说明或参考官方文档:

http://xcache.lighttpd.net/wiki/XcacheIni

2.操作

因为xcache已经提供好配置文件我们追加到php.ini即可

[root@web02 xcache-3.2.0]# cat xcache.ini >>/application/php/lib/php.ini


3.检查XCache加速情况

[root@web02 ~]# /application/php/bin/php -vPHP 5.5.32 (cli) (built: May 24 2016 13:55:46) Copyright (c) 1997-2015 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2015 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

提示:eAccelerator和xcache在php中只能有一个否则会出现error

修改完成后必须要重启PHP,否则不生效


4.配置Web界面查看XCache缓存加速信息

XCache支持Web界面管理,使用web界面生产md5地址如下:


http://xcache.lighttpd.net/demo/cacher/mkpassword.php 通过输入字符串生产Xcache管理员的密码,这里使用MD5sum生成明文密码。

[root@web02 xcache-3.2.0]# echo -n "123456"|md5sum e10adc3949ba59abbe56e057f20f883e  -

修改配置php.ini,在xcache.admin标签段修改

[xcache.admin]xcache.admin.enable_auth = Onxcache.admin.user = "abcdocker"    #此处是用户名xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"#此处是md5加密的密码路径提示:要求密码必须要使用md5加密

然后复制xcache软件下面的缓存加速管理PHP程序到站点目录下:

[root@web02 xcache-3.2.0]# cp -a htdocs/ /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# chown -R www.www /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# pkill php-fpm[root@web02 xcache-3.2.0]# /application/php/sbin/php-fpm

可以直接在浏览器上输入:域名/IP/xadmin 就可以访问

进入xcache界面

 如果我们没有设置时区,会出现警告,解决方法如下 

修改时区

[Date]; Defines the default timezone used by the date functions; http://php.net/date.timezonedate.timezone = Asia/Chongqing去掉注释,修改地址

修改完需要重启

配置ZendOpcache参数

在php.ini的最后面加入下面几行:

[opcache]zend_extension=/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/opcache.so;extension=opcache.soopcache.memory_consumption=32   opcache.interned_strings_buffer=8opcache.max_accelerated_files=1000  opcache.revalidate_freq=60   opcache.fast_shutdown=1opcache.enable_cli=1

opcache参数说明

opcache参数解释说明
opcache.memory_consumption=32Opcache共享内存空间大小,用于存放precompiled PHP code,默认为64,单位为Mbytes
opcache.interned_strings_buffer=8
默认值为4,interned strings内存的数量,单位是M
opcache.max_accelerated_files=1000
默认值是2000,Opcache哈希表的key的最大数量
opcache.revalidate_freq=60
默认值2,检查文件时间戳的频率,用于共享内存分配的变化。
opcache.fast_shutdown=1
默认值为0,如果激活,一个快速的关闭队列奖杯用来加速代码
opcache.enable_cli=1
默认值为0,激活PHP CLI的OPcache,用于测试和调试

更多参数说明:

[root@web02 zendopcache-7.0.5]# cd zendopcache-7.0.5[root@web02 zendopcache-7.0.5]# less README

再次提示:

ZendOPcache是PHP官方的新一代的缓存加速软件,php5.5以前可以用ZendOPcache软件以插件扩展的方式安装,从PHP5.5版本开始整合到PHP软件里,编译时只需要指定一个参数即可,例如:–enable-opcache 

PHP指定MySQL的编译参数带来的问题

如果我们再编译的时候指定了–with-mysql=mysqlnd和–with-pdo-mysql=mysqlnd的参数进行编译,例如:

./configure \--prefix=/application/php5.5.32 \--with-mysql=/application/mysql/ \--with-pdo-mysql=mysqlnd \--with-iconv-dir=/usr/local/libiconv \.....省略其他参数

则再生产中可能会遇到socket连接问题,解决方法是在php.ini里添加如下命令

pdo_mysql.default_socker=/application/php5.5.32/tmp/mysql.sock

生成环境PHP扩展插件的安装建议

1.PHP的安装插件表格列表

2.生成环境查看的安装建议

(1)对于功能性插件,如果业务产品不需要使用,可以暂时不考虑安装,例如:PDO_MYSQL\memcached\imagick等。如果不清楚是否需要,还是最好装上,有备无患。

(2)对于性能优化插件,eAccelerator、xcache、ZendOPcache、APC可以安装任一种,具体情况看业务需求,在选择时最好能搭建相关环境进程压力测试,然后根据实际测试结果来选择,用数据说话。


3.PHP加速插件的测试结果对比

针对PHP加速器比较结果进行总结

1.通过测试得出eAccelerator在请求时间和内存占用综合方面是最好的

2.通过测试得出使用加速器比无加速器的请求时间快了3倍左右

3.通过各个官方观察,Xcache是更新最快的,说明它是最有发展的。


那我们到底用哪个加速器呢?

首先,用一定比不用好,其次每个加速器还有一些可以优化的参数,所以要根据你的系统环境而定,此外,xcache和zendopcache这两款加速器的潜力还是很大的。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消