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
在编译opcache之前,先做一下预处理,生成configure文件;
#/opt/lampp/bin/phpize [这是我安装的xampp环境,phpize执行文件所在的目录,如果是自己源码编译,则为/usr/local/php/bin/phpize,phpize 命令是用来准备 PHP 拓展模块的编译环境的。]
#./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;