PHP Enable Opcache 是一種優(yōu)化 PHP 程序性能的工具,它可以通過緩存編譯過后的 PHP 腳本來提升服務(wù)器的響應(yīng)速度。現(xiàn)在越來越多的 PHP 網(wǎng)站采用了 Opcache 緩存機(jī)制,本文將詳細(xì)介紹如何在你的 PHP 程序中啟用 Opcache。
首先我們需要在 PHP 的配置文件中啟用 Opcache 模塊。假如我們的 PHP 安裝目錄為 /usr/local/php,我們需要編輯它的配置文件 php.ini,找到下面的這段,將注釋去掉,并將參數(shù)設(shè)置為 on:
<?php zend_extension = opcache.so opcache.enable=1 ?>啟用 Opcache 后,每次 PHP 解釋器編譯腳本后,都會(huì)將它緩存起來。這減少了編譯腳本的時(shí)間,使得 PHP 程序的響應(yīng)速度可以提升數(shù)倍。不過這種提升的速度有一個(gè)很重要的前提條件,就是你的 PHP 程序必須是可以緩存的。 比如下面的 PHP 腳本就不是可以緩存的:
<?php echo "Hello world!"; ?>因?yàn)檫@段代碼不涉及任何變量或者函數(shù),因此每次執(zhí)行都會(huì)輸出同樣的結(jié)果。但是如果你的 PHP 程序像下面這樣:
<?php $now = time(); echo "Current time is: ", $now; ?>就可以緩存了,因?yàn)楫?dāng)前時(shí)間每秒都會(huì)變化。在這種情況下,啟用 Opcache 可以極大的提高 PHP 程序的性能,但缺點(diǎn)是可能會(huì)在編程測(cè)試重寫等代碼更新時(shí)出現(xiàn)問題,因?yàn)榫彺娴木褪侵暗拇a快。 為了解決這種問題,可以設(shè)置 Opcache 的重新驗(yàn)證時(shí)間,如下所示:
<?php opcache.validate_timestamps = 1 opcache.revalidate_freq=60 ?>在上面的代碼中,opcache.revalidate_freq=60,就是設(shè)置每隔 60 秒就重新驗(yàn)證一遍緩存中已經(jīng)存在的 PHP 腳本。 啟用 Opcache 后,我們可以進(jìn)一步優(yōu)化它的性能。比如,可以將 Opcache 的內(nèi)存限制設(shè)置得更大一些,如下所示:
<?php opcache.memory_consumption = 256 ?>如上所示,將內(nèi)存限制設(shè)置為 256 MB 后,Opcache 就可以緩存更多的 PHP 腳本,提高 PHP 程序的性能。 總結(jié):?jiǎn)⒂?Opcache 可以極大的提高 PHP 程序的性能,但是需要根據(jù)具體情況進(jìn)行配置。通常情況下,設(shè)置重新驗(yàn)證時(shí)間和內(nèi)存限制都是必要的。如果出現(xiàn)緩存無效或者其他問題,則可以通過清理 Opcache 緩存來解決,如下所示:
<?php opcache_reset(); ?>