php zend gua,PHP安装使用Zend Opcache扩展
簡介
Zend OPCache 的前身是Zend Optimizer + (Zend O+),于 2013年3月中旬改名為 Opcache。其通過 opcode 緩存和優(yōu)化提供更快的 PHP 執(zhí)行過程。它將預(yù)編譯的腳本文件存儲在共享內(nèi)存中供以后使用,從而避免了從磁盤讀取代碼并進(jìn)行編譯的時間消耗。同時,它還應(yīng)用了一些代碼優(yōu)化模式,使得代碼執(zhí)行更快。
PHP 在5.5發(fā)行版后自帶了Zend OPCache擴展,但默認(rèn)沒有開啟,PHP5.2,5.3,5.4版也可以使用,但需要自行下載擴展。
什么是opcode緩存
->深入理解PHP原理之Opcodes
當(dāng)解釋器完成對腳本代碼的分析后,便將它們生成可以直接運行的中間代碼,也稱為操作碼(Operate Code,opcode)。
Opcode cache 的目地是避免重復(fù)編譯,減少 CPU 和內(nèi)存開銷。如果動態(tài)內(nèi)容的性能瓶頸不在于 CPU 和內(nèi)存,而在于 I/O 操作,比如數(shù)據(jù)庫查詢帶來的磁盤 I/O 開銷,那么 opcode cache 的性能提升是非常有限的。
但是既然 opcode cache 能帶來 CPU 和內(nèi)存開銷的降低,這總歸是好事 —— 本著環(huán)保的態(tài)度,也應(yīng)該盡量減少消耗不是? :D
現(xiàn)代操作碼緩存器(Optimizer+,APC2.0+,其他)使用共享內(nèi)存進(jìn)行存儲,并且可以直接從中執(zhí)行文件,而不用在執(zhí)行前“反序列化”代碼。這將帶來顯著的性能加速,通常降低了整體服務(wù)器的內(nèi)存消耗,而且很少有缺點。
Windows下的配置
1,PHP5.5版本前到此下載擴展,放到zend_ext目錄中。
2,修改php.ini配置
[php]
engine = On
zend_extension=php_opcache.dll
3,根據(jù)官方建議php.ini的 [opcache] 下修改配置,以獲得更好的性能
[opcache]
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
Linux下的配置
1,安裝擴展(PHP5.5版本以上跳過此步)
wget http://pecl.php.net/get/zendopcache-7.0.5.tgz
tar zxvf zendopcache-7.0.5.tgz
cd zendopcache-7.0.5
/path/to/php/bin/phpize
./configure --with-php-config=/path/to/php/bin/php-config
make && make install
2,修改php.ini
①在[php]下添加
zend_extension=php_opcache.so
②在[opcache]下添加
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
配置完成后重啟apache或php-fpm,phpinfo()看到Zend OPCache為Enabled
或
php -m|grep opcache,有顯示opcache
或
php -v 顯示with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies 即可。
設(shè)置例外
也許服務(wù)器上某些內(nèi)容,比如正在進(jìn)行調(diào)試的網(wǎng)站等,我們不希望對其進(jìn)行 OPcache。那就可以通過黑名單來將需要例外的文件排除掉。
在 OPcache 的配置文件中有一行配置,如下,
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
該配置指定用于存儲文件名黑名單的那個文件。很顯然這里使用通配符 * 來指定了一系列文件而不僅僅是特定某個文件。可以一直啟用這一行。等到需要排除某些文件的時候,就編輯對應(yīng)的黑名單文件。例如,針對 /srv/www/sites/devSite 文件夾下的所有文件,編輯(或者新建)文件,
vim /etc/php.d/opcache-devSite.blacklist
內(nèi)容為,
/srv/www/sites/devSite/*
通配符 * 表示所有 devSite 文件夾下的文件。
完了之后重新啟動 php-fpm 服務(wù)就可以了。
總結(jié)
以上是生活随笔為你收集整理的php zend gua,PHP安装使用Zend Opcache扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: probable oracle net,
- 下一篇: Linux下查看CPU等基本命令,Lin