opcache.enable boolean
啟用操作碼緩存晋柱。如果禁用此選項优构,則不會優(yōu)化和緩存代碼塘淑。 在運行期使用 ini_set() 函數(shù)只能禁用 opcache.enable 設置褐奥,不可以啟用此設置碘菜。 如果在腳本中嘗試啟用此設置項會產生警告注竿。
opcache.enable_cli boolean
僅針對 CLI 版本的 PHP 啟用操作碼緩存帆焕。 通常被用來測試和調試括尸。
opcache.memory_consumption integer
OPcache 的共享內存大小攒钳,以兆字節(jié)為單位挽荠。
opcache.interned_strings_buffer integer
用來存儲臨時字符串的內存大小进栽,以兆字節(jié)為單位德挣。 PHP 5.3.0 之前的版本會忽略此配置指令。
opcache.max_accelerated_files integer
? OPcache 哈希表中可存儲的腳本文件數(shù)量上限快毛。 真實的取值是在質數(shù)集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一個比設置值大的質數(shù)格嗅。 設置值取值范圍最小值是 200,最大值在 PHP 5.5.6 之前是 100000唠帝,PHP 5.5.6 及之后是 1000000屯掖。
opcache.max_wasted_percentage integer
浪費內存的上限,以百分比計襟衰。 如果達到此上限贴铜,那么 OPcache 將產生重新啟動續(xù)發(fā)事件。
opcache.use_cwd boolean
? ? 如果啟用瀑晒,OPcache 將在哈希表的腳本鍵之后附加改腳本的工作目錄阀湿, 以避免同名腳本沖突的問題。 禁用此選項可以提高性能瑰妄,但是可能會導致應用崩潰陷嘴。
opcache.validate_timestamps boolean
? ? 如果啟用,那么 OPcache 會每隔 opcache.revalidate_freq 設定的秒數(shù) 檢查腳本是否更新间坐。 如果禁用此選項灾挨,你必須使用 opcache_reset() 或者 opcache_invalidate() 函數(shù)來手動重置 OPcache,也可以 通過重啟 Web 服務器來使文件系統(tǒng)更改生效竹宋。
opcache.revalidate_freq integer
? ? 檢查腳本時間戳是否有更新的周期劳澄,以秒為單位。 設置為 0 會導致針對每個請求蜈七, OPcache 都會檢查腳本更新秒拔。
? ? 如果 opcache.validate_timestamps 配置指令設置為禁用,那么此設置項將會被忽略飒硅。
opcache.revalidate_path boolean
? ? 如果禁用此選項砂缩,在同一個 include_path 已存在的緩存文件會被重用作谚。 因此,將無法找到不在包含路徑下的同名文件庵芭。
opcache.save_comments boolean
? ? 如果禁用妹懒,腳本文件中的注釋內容將不會被包含到操作碼緩存文件, 這樣可以有效減小優(yōu)化后的文件體積双吆。 禁用此配置指令可能會導致一些依賴注釋或注解的 應用或框架無法正常工作眨唬, 比如: Doctrine, Zend Framework 2 以及 PHPUnit好乐。
opcache.load_comments boolean
? ? 如果禁用匾竿,則即使文件中包含注釋,也不會加載這些注釋內容蔚万。 本選項可以和 opcache.save_comments 一起使用搂橙,以實現(xiàn)按需加載注釋內容。
opcache.fast_shutdown boolean
? ? 如果啟用笛坦,則會使用快速停止續(xù)發(fā)事件区转。 所謂快速停止續(xù)發(fā)事件是指依賴 Zend 引擎的內存管理模塊 一次釋放全部請求變量的內存,而不是依次釋放每一個已分配的內存塊版扩。
opcache.enable_file_override boolean
? ? 如果啟用废离,則在調用函數(shù) file_exists(), is_file() 以及 is_readable() 的時候礁芦, 都會檢查操作碼緩存蜻韭,無論文件是否已經被緩存。 如果應用中包含檢查 PHP 腳本存在性和可讀性的功能柿扣,這樣可以提升性能肖方。 但是如果禁用了 opcache.validate_timestamps 選項, 可能存在返回過時數(shù)據(jù)的風險未状。
opcache.optimization_level integer
? ? 控制優(yōu)化級別的二進制位掩碼俯画。
opcache.inherited_hack boolean
? ? 在 PHP 5.3 之前的版本,OPcache 會存儲代碼中使用 DECLARE_CLASS 操作碼 來實現(xiàn)繼承的位置司草。當文件被加載之后艰垂,OPcache 會嘗試使用當前環(huán)境來綁定被繼承的類。 由于當前腳本中可能并不需要 DECLARE_CLASS 操作碼埋虹,如果這樣的腳本需要對應的操作碼被定義時猜憎, 可能無法運行。
? ? 在 PHP 5.3 及后續(xù)版本中搔课,此配置指令會被忽略胰柑。
opcache.dups_fix boolean
? ? 僅作為針對 “不可重定義類”錯誤的一種解決方案。
opcache.blacklist_filename string
? ? OPcache 黑名單文件位置。 黑名單文件為文本文件柬讨,包含了不進行預編譯優(yōu)化的文件名崩瓤,每行一個文件名。 黑名單中的文件名可以使用通配符姐浮,也可以使用前綴。 此文件中以分號(;)開頭的行將被視為注釋葬馋。
opcache.max_file_size integer
? ? 以字節(jié)為單位的緩存的文件大小上限卖鲤。設置為 0 表示緩存全部文件。
opcache.consistency_checks integer
? ? 如果是非 0 值畴嘶,OPcache 將會每隔 N 次請求檢查緩存校驗和蛋逾。 N 即為此配置指令的設置值。 由于此選項對于性能有較大影響窗悯,請盡在調試環(huán)境使用区匣。
opcache.force_restart_timeout integer
? ? 如果緩存處于非激活狀態(tài),等待多少秒之后計劃重啟蒋院。 如果超出了設定時間亏钩,則 OPcache 模塊將殺除持有緩存鎖的進程, 并進行重啟欺旧。
? ? 如果選項 opcache.log_verbosity_level 設置為 3 或者 3 以上的數(shù)值姑丑,當發(fā)生重啟時將在日志中記錄一條錯誤信息。
opcache.error_log string
? ? OPcache 模塊的錯誤日志文件辞友。 如果留空栅哀,則視為 stderr, 錯誤日志將被送往標準錯誤輸出 (通常情況下是 Web 服務器的錯誤日志文件)称龙。
opcache.log_verbosity_level integer
? ? OPcache 模塊的日志級別留拾。 默認情況下,僅有致命級別(0)及錯誤級別(1)的日志會被記錄鲫尊。 其他可用的級別有:警告(2)痴柔,信息(3)和調試(4)。
opcache.preferred_memory_model string
? ? OPcache 首選的內存模塊疫向。 如果留空竞帽,OPcache 會選擇適用的模塊, 通常情況下鸿捧,自動選擇就可以滿足需求屹篓。
? ? 可選值包括: mmap,shm, posix 以及 win32匙奴。
opcache.protect_memory boolean
? ? 保護共享內存堆巧,以避免執(zhí)行腳本時發(fā)生非預期的寫入。 僅用于內部調試。
opcache.mmap_base string
? ? 在 Windows 平臺上共享內存段的基地址谍肤。 所有的 PHP 進程都將共享內存映射到同樣的地址空間啦租。 使用此配置指令避免“無法重新附加到基地址”的錯誤。
opcache.restrict_api string
? ? 僅允許路徑是以指定字符串開始的 PHP 腳本調用 OPcache API 函數(shù)荒揣。 默認值為空字符串 ""篷角,表示不做限制。
轉載:http://php.net/manual/zh/opcache.configuration.php
二系任、PHP添加新的模塊
當我們PHP想添加新的擴張模塊時恳蹲,可以使用一下方法。當然俩滥,以下方法是saltstack進行安裝拓展模塊的方法
項目一:saltstack 添加PHP memcached模塊
memcache-plugin:
? file.managed:
? ? - name: /usr/local/src/memcache-2.2.7.tgz
? ? - source: salt://php/files/memcache-2.2.7.tgz
? ? - user: root
? ? - group: root
? ? - mode: 755
? cmd.run:
? ? - name: cd /usr/local/src && tar zxf memcache-2.2.7.tgz && cd memcache-2.2.7&& /usr/local/php/bin/phpize && ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config &&? make&& make install
? ? - unless: test -f /usr/local/php/lib/php/extensions/*/memcache.so
? require:
? ? - file: memcache-plugin
? ? - cmd: php-install
/usr/local/php/etc/php.ini:
? file.append:
? ? - text:
- extension=memcache.so