網站檔案快取在運行 PHP 5.5.28 的 Debian 網路伺服器上

網站檔案快取在運行 PHP 5.5.28 的 Debian 網路伺服器上

當我對網站進行小更改並上傳時,這些更改通常需要幾分鐘才能即時反映。在我透過 Google Compute Engine 安裝了新的 Debian 系統後,這種情況才開始發生。

我已經排除了我有快取它的程式碼,但是 PHP 5.5.28 或 Debian 是否有可能快取檔案?我還檢查過以確保它不是瀏覽器,並使用 chrome 選項不在開發人員工具中快取檔案。

答案1

您正在使用 PHP 5.5.28,根據我的經驗,任何從 PHP 5.3 或 5.4 跳到 PHP 5.5 的人都需要了解新的內建功能OPcache(操作快取)預設啟用。

如果您曾經使用過APC(替代 PHP 快取),新的內建 OPcache 的工作原理幾乎相同,並且非常適合複雜程式碼的生產目的,但如果您習慣上傳檔案並立即顯示更改,則預設啟用它可能會困擾您。

這個網站做得很好解釋什麼是 OPcache 以及如何調整它。但如果你還不需要 OPcache,只要像這樣打開你的 PHP ini 檔案;我更喜歡使用nano但請隨意使用您喜歡使用的任何文字編輯器:

sudo nano /etc/php5/apache2/php.ini

尋找顯示以下內容的行:

opcache.enable=1

只需將該行更改為即可停用它:

;opcache.enable=0

重新啟動 Apache,現在 PHP 5.5 將不再使用 OPcache。老實說,啟用這樣的快取應該是系統管理員的要求,他們了解程式碼如何運作以及伺服器如何反應

如果您的基於 PHP 的網站足夠輕量級,那麼 OPcache 可能有點過分了,實際上並不需要,甚至可能會妨礙您。

但如果你需要 OPcache 但也需要定期更新 PHP 檔案也許調整 OPcache 設定值會有所幫助。預設是這樣的:

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

我在該配置中看到的可能導致預期更新的關鍵是opcache.revalidate_freq:

檢查腳本時間戳更新的頻率(以秒為單位)。 0 將導致 OPcache 檢查每個請求的更新。

預設值 60 秒很好,但在我看來,將opcache.revalidate_freq5 秒降低到 5 秒可能是啟用 OPcache 的更好方式,但仍然有一個合理的更新檢查窗口,這樣您就不會被絆倒通過簡單的文件更新。

相關內容