用Zend OPCache提升PHP的性能

Zend OPCache的前身是Zend Optimizer + (Zend O+),在PHP5.5的發行版本中自帶了Zend O+,並從新命名爲:Zend OPCache。可是默認是沒有啓用的,能夠在ini文件中enable一下。php

據統計,zend opcache比apc性能要好,能夠提高提高 5%-9%。git

APC vs Zend OPCache

值得關注的是Zend OPCache支持PHP5.2.0+的版本,也就是說只要是5.2以上的PHP,均可以是用Zend OPCache,而不需必定要升級到PHP5.5,因此在咱們目前的生產站點能夠嘗試使用Zend OPCache,如基於Drupal六、Drupal7的PHP5.2,PHP5.3等版本。github

Drupal大學上也有關於這個問題的討論,連接一下:Zend OPCache和APC能共用嗎?web


安裝Zend OPCache,推薦使用自帶源或者PECL包的安裝方式。
緩存

yum install php-pecl-zendopcache.x86_64 -y

啓用Zend OPCache, 編輯 /etc/php.d/opcache.ini 文件bash

zend_extension=/usr/lib64/php/modules/opcache.so
 
; Determines if Zend OPCache is enabled
opcache.enable=1

重啓web服務器便可,查看info,便可看到Zend OPCache項或者使用 php -i|grep opcache。服務器

相關問題,
1. Zend OPCache是作opcache的緩存,那麼APC是還須要?我的認爲,這個就不須要了,由於功能重複,雖然兩個同時安裝沒有什麼bug,可是仍是不推薦使用。
ServerFault上面的也有關於apc和Zend OPCache公用的討論,推薦不要一塊兒用。
http://serverfault.com/questions/610524/can-zend-opcode-cache-and-apc-cache-run-together-on-same-serversession

2. 禁用apc相關的處理方案。
若是不使用apc,apc_store等相關apc的函數須要禁用。若是系統裏面有不少相關的apc函數,可使用apcu模塊,此模塊只有apc的user cache功能。
還有apc的上傳進度相關功能須要代替,可使用PHP自帶的session,session.upload-progress.enabled
http://php.net/manual/en/session.configuration.php#ini.session.upload-progress.enabled框架

3. save_comments選項函數

opcache.save_comments=1

若是禁用此選項,那麼PHP中全部的comment會被禁用,性能會提高,可是有些框架可能會受影響,好比Wordpress,Drupal八、PHPUnit等,建議不要禁用。
 

4. Zend OPCache的管理工具
兩個比較好用的OPCache管理工具,筆者測試了第一個,不過貌似第二個更強大一些,呱呱^_^:
https://github.com/amnuts/opcache-gui
https://github.com/PeeHaa/OpCacheGUI


 


本文有效連接: http://www.drupal001.com/2014/09/zend-opcache-php/ 

相關文章
相關標籤/搜索