標籤:lis 技術分享 關閉 .dll files err 代碼 log 破壞
說明
PHP 5.5+版本以上的,可以使用PHP內建的opcache開啟效能加速(預設是關閉的)。對於PHP 5.5以下版本的,需要使用APC加速,這裡不說明,可以自行上網搜尋PHP APC加速的方法。
PHP開啟opcache方法
1、開啟php.ini檔案
2、找到:[opcache],設定為:
[opcache]; dll地址zend_extension=php_opcache.dll; 開關開啟opcache.enable=1; 開啟CLIopcache.enable_cli=1; 可用記憶體, 酌情而定, 單位為:Mbopcache.memory_consumption=528; Zend Optimizer + 暫存池中字串的占記憶體總量.(單位:MB)opcache.interned_strings_buffer=8; 對多快取檔案限制, 命中率不到 100% 的話, 可以試著提高這個值opcache.max_accelerated_files=10000; Opcache 會在一定時間內去檢查檔案的修改時間, 這裡設定檢查的時間周期, 預設為 2, 定位為秒opcache.revalidate_freq=1; 開啟快速關閉, 開啟這個在PHP Request Shutdown的時候回收記憶體的速度會提高opcache.fast_shutdown=1
3、重啟apache即可。
測試
配置完成後,可以使用如下代碼查詢opcache:
<?php phpinfo();?>
訪問頁面得到如下介面:
以下是opcache的配置說明:
[opcache]zend_extension = "G:/PHP/php-5.5.6-Win32-VC11-x64/ext/php_opcache.dll" ; Zend Optimizer + 的開關, 關閉時代碼不再最佳化.opcache.enable=1 ; Determines if Zend OPCache is enabled for the CLI version of PHPopcache.enable_cli=1 ; Zend Optimizer + 共用記憶體的大小, 總共能夠儲存多少先行編譯的 PHP 代碼(單位:MB); 推薦 128opcache.memory_consumption=64 ; Zend Optimizer + 暫存池中字串的占記憶體總量.(單位:MB); 推薦 8opcache.interned_strings_buffer=4 ; 最大緩衝的檔案數目 200 到 100000 之間; 推薦 4000opcache.max_accelerated_files=2000 ; 記憶體“浪費”達到此值對應的百分比,就會發起一個重啟調度.opcache.max_wasted_percentage=5 ; 開啟這條指令, Zend Optimizer + 會自動將當前工作目錄的名字追加到指令碼鍵上,; 以此消除同名檔案間的索引值命名衝突.關閉這條指令會提升效能,; 但是會對已存在的應用造成破壞.opcache.use_cwd=0 ; 開啟檔案時間戳記驗證 opcache.validate_timestamps=1 ; 2s檢查一次檔案更新 注意:0是一直檢查不是關閉; 推薦 60opcache.revalidate_freq=2 ; 允許或禁止在 include_path 中進行檔案搜尋的最佳化;opcache.revalidate_path=0 ; 是否儲存檔案/函數的注釋 如果apigen、Doctrine、 ZF2、 PHPUnit需要檔案注釋; 推薦 0opcache.save_comments=1 ; 是否負載檔案/函數的注釋;opcache.load_comments=1 ; 開啟快速關閉, 開啟這個在PHP Request Shutdown的時候會收記憶體的速度會提高; 推薦 1opcache.fast_shutdown=1 ;允許覆蓋檔案存在(file_exists等)的最佳化特性。;opcache.enable_file_override=0 ; 定義啟動多少個最佳化過程;opcache.optimization_level=0xffffffff ; 啟用此Hack可以暫時性的解決”can’t redeclare class”錯誤.;opcache.inherited_hack=1 ; 啟用此Hack可以暫時性的解決”can’t redeclare class”錯誤.;opcache.dups_fix=0 ; 設定不緩衝的黑名單; 不緩衝指定目錄下cache_開頭的PHP檔案. /png/www/example.com/public_html/cache/cache_ ;opcache.blacklist_filename= ; 通過檔案大小屏除大檔案的緩衝.預設情況下所有的檔案都會被緩衝.;opcache.max_file_size=0 ; 每 N 次請求檢查一次緩衝校正.預設值0表示檢查被禁用了.; 由於計算校正值有損效能,這個指令應當緊緊在開發調試的時候開啟.;opcache.consistency_checks=0 ; 從緩衝不被訪問後,等待多久後(單位為秒)調度重啟;opcache.force_restart_timeout=180 ; 錯誤記錄檔檔案名稱.留空表示使用標準錯誤輸出(stderr).;opcache.error_log= ; 將錯誤資訊寫入到伺服器(Apache等)日誌;opcache.log_verbosity_level=1 ; 記憶體共用的首選後台.留空則是讓系統選擇.;opcache.preferred_memory_model= ; 防止共用記憶體在指令碼執行期間被意外寫入, 僅用於內部調試.;opcache.protect_memory=0
文章參考
使用 OpCache 提升 PHP 5.5+ 程式效能
https://phphub.org/topics/301
php opcache 配置
https://blog.hackroad.com/operations-engineer/windows_server/9311.html
http://www.cnblogs.com/HD/p/4554455.html
php 開啟opcache