Zend Opcache在PHP5.4、PHP5.5下的安装

ZendOpcache

Zend OPcache 通过缓存和优化加快PHP的执行速度。通过将预编译的脚本字节码存储在共享内存中提高PHP的性能。减少了之后访问脚本时从磁盘读取并编译脚本的处理。此外,它应用了一些字节码优化模式使脚本执行更快。

PHP 5.5安装Zend Opcache

./configure --enable-opcache

编译成功了,但是没有效果,可能是由于我编译增加了xcache、memcache的原因,后来本地测试了下,全新PHP 5.5直接用–enable-opcache是可以的。

PHP 5.4安装Zend Opcache

wget http://pecl.php.net/get/zendopcache-7.0.3.tgz
tar xzf zendopcache-7.0.3.tgz
cd zendopcache-7.0.3
/usr/local/vesta/php/bin/phpize
./configure -with-php-config=/usr/local/vesta/php/bin/php-config
make
make install

我在Debian7.5下安装的Vestacp会提示找不到autoconf:

Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

需要安装下Autoconf

apt-get install autoconf

打开php.ini 在最下面添加如下代码:

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/opcache.so  //zend_extension路径为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 //打开快速关闭, 打开这个在PHP Request Shutdown的时候 回收内存的速度会提高
opcache.enable_cli=1

Dibian下在/etc/php5/mods-available下创建opcache.ini添加如下代码(我使用的Vestacp免费VPS主机控制面板):

; configuration for php Zend OPcache module
; priority=20
zend_extension=/usr/local/vesta/php/lib/php/extensions/no-debug-non-zts-20100525/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

使用ln -s创建软链接到/etc/php5/conf.d/

ln -s ../mods-available/opcache.ini /etc/php5/conf.d/20-opcache.ini

然后重启apache,用phpinfo查看是否生效!

Zend Opcache是否生效

可以通过phpinfo查看是否生效,下图是我的配置PHP扩展:

我们做个测试, 验证一下什么是opcache.

echo ‘hellow opcache’;

这是一段非常简单的php代码, 请保存为a.php文件然后访问, 随意刷新, Cache hits数值会不停地增加, 说明起作用了,
然后你修改代码为:

echo ‘hellow opcache new’;

再刷新a.php, 应该可以看到效果, 打印出来的值仍然是hellow opcache, 即源码被缓存了, 它不再解析a.php文件, 试着不停地刷新, 检测多少秒后才会输出 hellow opcache new.

 
也可以安装个Opcache Control Panel查看!
下载地址:https://gist.github.com/ck-on/4959032
百度网盘下载:http://pan.baidu.com/s/1qWNpryO
把上面的代码上传到你的网站目录下面。
打开就可以看到界面如下:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

退出移动版