PHP缓存原理

当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(OperateCode,简称opcode)文件,该文件是PHP代码的一种二进制表示方式。默认情况下,这个编译好的操作码文件由PHP引擎执行后丢弃,而操作码缓存(Opcode Cache)的原理就是将编译后的操作码保存到共享内存,以便下一次调用相同PHP程序时重复使用该操作码,避免了相同代码的重复编译,节省了PHP引擎重复编译的时间,降低了服务器负载同时节省了CPU和内存开销,主要的缓存加速插件有eAccelerator、XCache、ZendOpcache等。

XCache缓存插件部署

XCache是一个开源的、又快又稳定的PHPopcode缓存插件,其项目leader曾经是Lighttpd的开发成员之一。XCache把PHP编译后的opcode缓存到共享内存里,避免相同的程序重复编译。用户请求相同的PHP程序时,可以直接使用缓存中已经编译好的数据,从而提高PHP的访问速度,通常可以提升2-5倍,并大幅度降低服务器负载开销。很多公司使用XCache,它已经能在大流量、高负载的生产环境中稳定运行,与同类型的opcache缓存插件相比在各个方面都更胜一筹,同时xcache的社区活跃、开发快速,能够快速跟进PHP的版本更新。目前的3.2版本全面支持PHP5.1-5.6,官方网站http://xcache.lighttpd.net

echo $LC_ALL
echo "export LC_ALL=C" >> /etc/profile
source /etc/profile
yum install perl-devel -y
#注:在做PHP扩展前要做好上述环境配置,以免编译过程报错
cd /server/tools/
wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
tar xf xcache-3.2.0.tar.gz
cd xcache-3.2.0
/application/php/bin/phpize
./configure --enable-xcache --with-php-config=/application/php/bin/php-config
make
make install vim /application/php/lib/php.ini
extension_dir = "/application/php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/" cp xcache.ini xcache.ini.bak
grep -v "^;" xcache.ini.bak > xcache.ini
echo -n "123456" | md5sum
e10adc3949ba59abbe56e057f20f883e -
vim xcache.ini
[xcache-common]
extension = xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "peter"
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 256M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 86400
xcache.gc_interval = 3600
xcache.var_size = 64M
...
#含义:
内存分配方式
缓存大小
将缓存切分为多少块,推荐设置为CPU个数 grep -c processor /proc/cpuinfo
hash槽个数
对象生存时间
扫描回收过期数据的周期
变量缓存的大小 echo ";xcache config by peter" >> /application/php/lib/php.ini
cat xcache.ini >> /application/php/lib/php.ini
/application/php/bin/php -v
PHP 5.3.27 (cli) (built: Sep 14 2017 11:03:50)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 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

#配置web监控界面
cp -a htdocs/ /application/nginx/html/xadmin
chown -R nginx.nginx /application/nginx/html/xadmin
pkill php-fpm
/application/php/sbin/php-fpm http://172.16.1.88/xadmin

ZendOpcache缓存插件部署

从PHP5.5开始,官方已经集成了新一代缓存加速插件ZendOpcache,编译PHP时只需加上 --enable-opcache即可,据官方说缓存速度更快。
对于更低版本的PHP则需以扩展插件的形式安装ZendOpcache,扩展插件支持PHP5.3-5.4。
cd /server/tools
wget http://pecl.php.net/get/zendopcache-7.0.5.tgz
tar xf zendopcache-7.0.5.tgz
cd zendopcache-7.0.5
/application/php/bin/phpize
./configure --enable-opcache --with-php-config=/application/php/bin/php-config
make
make install
ls /application/php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/ vim /application/php/lib/php.ini
[opcache]
zend_extension=/application/php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
;extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
#含义:
缓存大小
缓冲大小
散列表Key的最大数量,即opcode文件数量
检查文件时间戳的周期
激活快速关闭队列,可以加速代码
激活PHPCLI的OPcache,用于测试和调试 [root@test88 zendopcache-7.0.5]# /application/php/bin/php -v
PHP 5.3.27 (cli) (built: Sep 14 2017 11:03:50)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies

phpize是什么

通过phpize可以建立PHP的外挂模块,在编译要添加的扩展模块之前,需要执行一下phpize。

最新文章

  1. 1017关于EXPLAIN的语法
  2. POJ 3537 Crosses and Crosses
  3. Java持久化存储对象Properties的方法list、store、load
  4. VS2013安装过程截图
  5. python标准库 difflib-比较序列
  6. 获取证书以用于 Windows Azure 网站 (WAWS)
  7. 在分布式数据库中CAP原理CAP+BASE
  8. nginx HTTP/2.0 配置
  9. c语言变量类型联想
  10. JAVA通过COM接口操作PPT
  11. redis 开启远程访问权限
  12. 原生JavaScript中动画与特效的实现原理
  13. 设置webstorm自动删除行尾分号
  14. LeetCode题解之 Find Mode in Binary Search Tree
  15. js作用域及闭包
  16. NodeJs递归删除非空文件夹
  17. laravel Tinker报错 BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder
  18. Linux编程_Shell脚本练习题
  19. Coursera SDN M1.1 SDN History: Central Control
  20. CentOS 6&7安装ffmpeg

热门文章

  1. (转)Spring用代码来读取properties文件
  2. CF44H Phone Number
  3. 学习NAT时引出网关
  4. Matrix Walk CodeForces - 954C
  5. CentOS7.4 删除virbr0虚拟网卡
  6. Codeforces 744C. Hongcow Buys a Deck of Cards(状压DP)
  7. 【loj6059】Sum
  8. PID控制算法的C语言实现八 变积分的PID控制算法C语言实现
  9. 简化版SMO算法标注
  10. z-index详细攻略