您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么安裝配置ZendOpcache”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么安裝配置ZendOpcache”吧!
PHP開發小組背后的公司Zend近期開源了其旗下的PHP加速產品Zend Optimizer,新項目托管于Github項目名稱為ZendOptimizerPlus。今天我們就來說說ZendOpcache。
簡介
Zend Optimizer + 通過 opcode 的緩存和優化來提速 PHP 的執行.它通過在共享內存里存儲預編譯的PHP腳本來提高PHP的性能.這一操作消除了從磁盤讀取PHP文件然后編譯的過程.此外, 此外它還提供了少量的字節碼優化模式使得代碼執行更快.
適用性
當前版本的 Zend Optimizer + 適用于 PHP 5.2.*, 5.3.*, 5.4.* 以及 PHP-5.5 開發版分支. 將來也許會取消對 PHP 5.2 的支持.
安裝
首先下載 Zend Optimizer + 的源碼:
http://pecl.php.net/package/ZendOpcache
目前, 我使用的是 7.0.1 的 beta 版, 下載后解壓, 編譯:
wget http://pecl.php.net/get/zendopcache-7.0.1.tgz tar xzf zendopcache-7.0.1.tgz cd zendopcache-7.0.1 phpize ./configure --with-php-config=/path_to_php_bin/php-config make make install
配置編輯 php.ini
zend_extension=/...full_path.../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
重啟你的 php cgi 或者 Apache.
配置參數詳解
opcache.enable(默認值:1)
Zend Optimizer + 的開關, 關閉時代碼不再優化.
opcache.memory_consumption(默認值:64)
Zend Optimizer + 共享內存的大小, 總共能夠存儲多少預編譯的 PHP 代碼(單位:MB).
opcache.interned_strings_buffer(默認值:4)
Zend Optimizer + 中interned字符串的占內存總量.(單位:MB)
opcache.max_accelerated_files(默認值:2000)
Zend Optimizer + 哈希表中鍵數量的最大值(一個腳本文件應當是對應一個key的,所以應當就是允許緩存的文件最大數量).這個值實際上是素數列表{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }中第一個大于設定值的數字.值設定范圍: 200 – 100000
opcache.max_wasted_percentage(默認值:5)
“浪費”的內存達到此值對應的百分比,就會發起一個重啟調度.
opcache.use_cwd(默認值:1)
開啟這條指令, Zend Optimizer + 會自動將當前工作目錄的名字追加到腳本鍵上, 以此消除同名文件間的鍵值命名沖突.關閉這條指令會提升性能,但是會對已存在的應用造成破壞.
opcache.validate_timestamps(默認值:1)
禁用時, 您必須手動重置Zend Optimizer +或重新啟動Web服務器,以使文件系統的更改生效. 檢查的頻率是由指令 “opcache.revalidate_freq” 控制.
opcache.revalidate_freq(默認值:2)
多久(以秒為單位)檢查文件時間戳以改變共享內存的分配.”1″ 表示一秒校驗一次, 但是是每個請求一次. “0″ 表示總是在校驗.
opcache.revalidate_path(默認值:0)
允許或禁止在 include_path 中進行文件搜索的優化. 如果文件搜索被禁用而且可以在相同的 include_path 中找到這個緩存的文件, 文件搜索就不會再進行下去了. 因此,如果 include_path 其它地方有一個同名文件的話, 那就找不到了. 如果這個優化對您的應用有影響,那么應當允許它搜索. 默認情況下,指令是禁止的,這就意味著,優化是處于激活狀態的.
opcache.save_comments(默認值:1)
如果禁用,所有的文檔注釋都從代碼中剔除以此減少優化過的代碼的大小.禁用 “文檔注釋” 可能會破壞一些現有的應用和框架(例如: Doctrine, ZF2, PHPUnit).
opcache.load_comments(默認值:1)
如果禁用, PHP文檔注釋將不會從 SHM(共享內存) 中讀取. 盡管”文檔注釋”還是會被存儲(save_comments=1), 但是那些無論如何都用不上的注釋就不必被應用讀取了.
opcache.fast_shutdown(默認值:0)
如果開啟, 一個快速關閉隊列用以提速代碼. 快速關閉隊列并不釋放每個已分配的塊, 而是讓 Zend 引擎內存管理器來干這個活.
opcache.enable_file_override(默認值:0)
允許覆蓋文件存在(file_exists等)的優化特性。
opcache.optimization_level(默認值:0xffffffff)
一個位掩碼,其中每個位允許或禁用相應的緩存通過.
opcache.inherited_hack(默認值:1)
啟用此Hack可以暫時性的解決”can’t redeclare class”錯誤. Zend Optimizer + 存儲著 DECLARE_CLASS 操作碼使用繼承的地方(這些是唯一可以被PHP執行的操作碼,但是也可能因為優化引起的父類找不到而無法執行).當文件被讀取時, Optimizer 會試著通過當前環境綁定被繼承的類. 這樣做的問題是. DECLARE_CLASS 的操作碼可能不被當前腳本所需要, 如果腳本需要操作碼至少完成類的定義操作, 那么它就會無法執行.這指令的默認是禁用的, 這就表示優化是有效的. 該在 php 5.3 以及以上的版中不再被需要, 而且這個設置也不會生效.
opcache.dups_fix(默認值:0)
啟用此Hack可以暫時性的解決”can’t redeclare class”錯誤.
opcache.blacklist_filename(默認值:無)
Zend Optimizer + 黑名單文件的位置.
Zend Optimizer + 黑名單是一個文本文件包含了那些不能被加速的文件名.文件格式為每行一個文件名.文件名須為一個完整的路徑或者緊緊一個文件前綴(如:/var/www/x 屏蔽了 /var/www 文件和目錄中所有以 ‘x’ 開始的文件或者目錄). 需要屏蔽的文件通常符合下面三個原因中的一個:
1) 目錄包含了自動生成的代碼, 如 Smarty 或者 ZFW 的緩存.
2) 執行加速時代碼無法很好的運行, 從而耽誤了編譯時評估.
3) 代碼觸發了一個 Zend Optimizer + 的 Bug
opcache.max_file_size(默認值:0)
通過文件大小屏除大文件的緩存.默認情況下所有的文件都會被緩存.
opcache.consistency_checks(默認值:0)
每 N 次請求檢查一次緩存校驗.默認值0表示檢查被禁用了.由于計算校驗值有損性能,這個指令應當緊緊在開發調試的時候開啟.
opcache.force_restart_timeout(默認值:180)
從緩存不被訪問后,等待多久后(單位為秒)調度重啟.Zend Optimizer + 依托此指令來確定一個進程可能在處理過程中出現問題的情況.這段時間(等待時間)過后, 假設 Zend Optimizer + 發生了一些問題, 并開始干掉那些仍然持有預防重啟鎖的進程.當這些發生時, 如果日志的級別是3級或以上, 一個 “killed locker” 的錯誤就會被記錄到 Apache 的日志中.
opcache.error_log(默認值:無)
Zend Optimizer + 的錯誤日志文件名.留空表示使用標準錯誤輸出(stderr).
opcache.log_verbosity_level(默認值:1)
將錯誤信息都導向 Web 服務器日志.默認的只有致命錯誤(level 0) 或者錯誤(level 1)才會被記錄.你也可以允許警告(level 2),提示消息(level 3) 或者 調試消息(level 4)被記錄下來.
opcache.preferred_memory_model(默認值:無)
內存共享的首選后臺.留空則是讓系統選擇.
opcache.protect_memory(默認值:0)
防止共享內存在腳本執行期間被意外寫入, 僅用于內部調試.
opcache.mmap_base(默認值:無)
共享內存段映射基礎(僅適用于Windows).所有的PHP進程必須映射到相同的共享內存地址空間.該指令用于手動修復 “Unable to reattach to base address” 錯誤.
到此,相信大家對“怎么安裝配置ZendOpcache”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。