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。

PHP缓存加速插件 XCache 、 ZendOpcache 安装的更多相关文章

  1. php缓存加速优化--Xcache

    1.安装软件:cd /usr/local/src/下载软件包wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache- 3.2.0.tar.b ...

  2. Linux实战教学笔记36:PHP服务缓存加速深度优化实践

    一,PHP缓存加速器介绍与环境准备 1.1 PHP缓存加速器介绍 1.1.1 操作码介绍及缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(Ope ...

  3. PHP WEB 引擎缓存加速优化

    PHP 缓存加速器介绍 操作码缓存 请求一个 PHP 程序时,PHP 引擎会解析程序,并且将编译码作为特定操作码.这是要执行的代 码的一种二进制表示形式.随后,此操作码有 PHP 引擎执行并丢弃.操作 ...

  4. WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

    VPS主机性能配置如果太差,则在运行Wordpress博客和Discuz! 论坛等高消耗程序时能够明显感觉出VPS有些吃力.另外,即使VPS主机的CPU.内存.硬盘I/O等性能足够好,但是在面对大流量 ...

  5. 测试一下PHP官方的新一代PHP加速插件ZendOpcache的性能及配置

    过程不表,都比较顺利 参考如下URL: http://www.lvtao.net/server/ZendOpcache.html 大家知道目前PHP的缓存插件一般有三个:APC.eAccelerato ...

  6. PHP7安装Memcache+Memcached缓存加速WordPress教程

    PHP7安装Memcache+Memcached缓存加速WordPress教程 2016年1月19日 6,691 Views 生活方式 PHP7最显著的变化就是性能的极大提升,已接近Facebook开 ...

  7. Linux下安装php加速组件XCache

    这里选择的是稳定版本的1.2.2版本,2.0版本的不稳定.wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gzt ...

  8. 新一代 PHP 加速插件 Zend Opcache

    参考:http://www.laogui.com/Zend-Opcache 大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP ...

  9. 新一代 PHP 加速插件 Zend Opcache <转>

    注: 由于原链接已不存在, 所以我把图片重新整理了一下, 以便看起来更加直观 笔者注: 1>  PHP 性能提升之 PHP NG  =>  php next generation wiki ...

随机推荐

  1. P2756 飞行员配对方案问题(网络流24题之一)

    题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外 ...

  2. [cogs1065]绿豆蛙的归宿

    1065. [Nescafe19] 绿豆蛙的归宿 [题目描述] 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点.到达每一个顶点时,如果有K条离开该点的道路, ...

  3. 【转】c# thread.join 理解

    转自:http://blog.csdn.net/lulu_jiang/article/details/6584251 线程Join()方法:让一个线程等待另一线程终结后再继续运行. private s ...

  4. springboot集成Guava缓存

    很久没有写博客了,这段时间一直忙于看论文,写论文,简直头大,感觉还是做项目比较舒服,呵呵,闲话不多说,今天学习了下Guava缓存,这跟Redis类似的,但是适用的场景不一样,学习下吧.今天我们主要是s ...

  5. springMVC参数绑定与数据回显

    简单例子:修改商品信息的jsp页面: 参数绑定过程: 1.2.1  默认支持的参数类型 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值. 1.1.1     HttpServletReq ...

  6. 【题解】期末考试 六省联考 2017 洛谷 P3745 BZOJ 4868 贪心 三分

    题目传送门:这里是萌萌哒传送门(>,<) 啊♀,据说这题有个完全贪心的做法,但是要维护太多东西好麻烦的(>,<),于是就来口胡一发三分的做法. 思路很简单,假设我指定了一个x, ...

  7. python requests https 访问出错

    错误提示: /usr/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:100: InsecurePla ...

  8. codeforces 872E. Points, Lines and Ready-made Titles

    http://codeforces.com/contest/872/problem/E E. Points, Lines and Ready-made Titles time limit per te ...

  9. 莫队 Codeforces Round #340 (Div. 2) E

    题目大意:给你一个长度为n的序列,有m个询问,每次询问一个区间[L,R],表示这个区间内,有多少的a[i]^a[i+1].....^a[j]=k. 思路:莫队去搞就好了 我们定义pre[i]=a[1] ...

  10. 其他:strtok和sscanf结合输入读取一行整数

    gets(buf); int v; char *p = strtok(buf," "); while(p) { sscanf(p,"%d",&v); p ...