PHP Opcode 快取可以偵測相同的文件

PHP Opcode 快取可以偵測相同的文件

我目前正在使用 APC 和 PHP FPM 來快取數百個 Wordpress 網站。有了 2gig 緩存,一切都運作良好,但效率不是很高,而且緩存總是已滿。

例如,如果我在同一台伺服器上有 200 個 WordPress 站點,並且都具有相同的版本,那麼它將快取 200 個相同的 wp-db.php 檔案。

我似乎記得幾年前關於它如何成為安全風險的討論。我懷疑這不再是一個問題(尤其是 PHP FPM),但無論如何我控制所有網站,所以好處大於任何缺點。

近年來這種情況有改變嗎?尤其是新的預設 Zend Opcache?像符號連結這樣的駭客攻擊並不理想,例如您無法一次升級 500 個站點,因此它有時會嚴重崩潰。

答案1

這是部分回應,因為我沒有使用 zend 操作碼遇到過這種情況。

上次我使用 apc 時,這個功能讓我覺得是一個 bug,從來沒有把它看作一個功能:-)。如果您將chroot-ed 池與 php-fpm 一起使用,並且所有池在 chroot 中具有相同的相對路徑,那麼它們在 apc 中共享相同的快取鍵。由於金鑰是完整的絕對檔案路徑,且在 chroot 中,此檔案路徑不能包含該部分chroot。

所以你可以用 chroot 試試。但這意味著幾個技巧:

  • chroots 應包含 php 可能需要的所有元素(暫存目錄、/etc/hosts、某些裝置)
  • php 郵件無法正常運作,應在 smtp 模式下使用
  • 有些文件應該從快取中排除,所有包含設定的文件,如果你忘記了這一點,網站將會變得混亂!
  • 也許還有其他一些,chroot 從來都不簡單

相關內容