php加速缓存器zend opcache 安装和使用

PHP 5.5发布了,内置支持Zend Opcache,要使用,去php官网查看,使用配置,直接开启就行了。

opcache官网的提示:NOTE: In case you are going to use Zend OPcache together with Xdebug or Zend Debugger, be sure that the debugger is loaded after OPcache. “php -v” must show the debugger after OPcache. 如果有安装xdebug的话,要卸掉,先安装opcache再安装xdebug。

 

1.获取opcache

可以输入网址直接下载,或者wget

#wget http://pecl.php.net/get/zendopcache-7.0.3.tgz
#tar -zxv -f zendopcache-7.0.3.tgz
2.编译前预处理

在编译opcache之前,先做一下预处理,生成configure文件;

#cd zendopcache-7.0.3

#/opt/lampp/bin/phpize    [这是我安装的xampp环境,phpize执行文件所在的目录,如果是自己源码编译,则为/usr/local/php/bin/phpize,phpize 命令是用来准备 PHP 拓展模块的编译环境的。]

3.编译安装
查看安装帮助   ./configure  –h;

#./configure –with-php-config=/opt/lampp/bin/php-config  [如果是自己源码编译,则为/usr/local/php/bin/php-config,]

#make && make install

安装成功!

4.配置php.ini

在php的配置文件后面追加,opcache扩展,php.ini

zend_extension=/opt/lamp/lib/php/extensions/no-debug-non-zts-20100525/opcache.so   //如果自己编译环境,这个路径响应修改。
opcache.memory_consumption=128        #共享内存大小, 这个根据你们的需求可调 opcache.interned_strings_buffer=8 #interned string的内存大小, 也可调 opcache.max_accelerated_files=4000  #最大缓存的文件数目 opcache.revalidate_freq=60 #60s检查一次文件更新 opcache.fast_shutdown=1 #打开快速关闭, opcache.enable_cli=1 #不保存文件/函数的注释
//上面这些opcache配置,可以去查看php官网,或者看下github的信息。

5.重启apache。
可以通过phpinfo查看是否生效,或者php -v 查看是否有信息。
在phpinfo()信息中, 目前来看有两条信息:
    Cache hits (高级缓存命中)
    Cache misses (高级缓存未命中)

6.测试
test.php中:
<?php 
  echo "opcache test";
?>

然后访问, 随意刷新, Cache hits数值会不停地增加, 说明起作用了.
然后你修改代码为:

    < ?php
    echo 'new cache';
    ?>

再刷新test.php, 应该可以看到效果, 打印出来的值仍然是opcache test, 即源码被缓存了, 它不再解析test.php文件, 试着不停地刷新, 检测多少秒后才更新.
可设置: opcache.force_restart_timeout=180 的时间来控制更新速度.


对于具体的信息配置:查看php官网。
opcache的github安装信息及配置解释:https://github.com/zendtech/ZendOptimizerPlus

 本地环境非必要情况下不要开启opcache, 服务器上可以开启, 必竟不是天天更新. 缓存起来有它的历史意义. 


---------------------------------------------分割线---------------------------------------------
web-ui查看优化后的一些信息:
下载ocp.php文件,放到项目目录中;然后在浏览器中打开这个文件就可。
Installation:

wget https://gist.github.com/ck-on/4959032/raw/0b871b345fd6cfcd6d2be030c1f33d1ad6a475cb/ocp.php;
Posted in linux