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;
