Alternative-Php-Cache

僅在某些站點上啟用 APC 使用者記憶體 (Apache)

  • June 6, 2014

首先,我們暫時對文件記憶體根本不感興趣,重要的是使用者記憶體。

對於我們正在開發的某些應用程序,我們需要將有關數據庫結構和查詢結果的資訊儲存在記憶體中。

我們的伺服器上有幾十個站點,其中一些由具有 ftp 訪問權限的客戶控制。

我擔心虛擬主機(我們不控制 php 文件的主機)與另一台虛擬主機的記憶體發生衝突。我們可以對我們的應用程序進行編碼,這樣它們的記憶體鍵就不會發生衝突,但我們不能保證客戶不會清除或修改我們的記憶體值。

我們在帶有 plesk 的 CentOS 5.3 伺服器上有 mod_php。我們擁有apc.cache_by_default=0並且apc.filters="-/.*"因為它的開啟似乎破壞了我們已安裝的許多第三方應用程序。

我已經在虛擬主機中嘗試過php_admin_flag apc.enabled offphp_admin_value apc.enabled 0但它似乎沒有效果。

有什麼方法可以完全禁用某些站點的 apc 嗎?

或者,有沒有辦法讓每個虛擬主機有一個單獨的使用者記憶體?還是不同的記憶體解決方案?我們正在考慮使用 memcached,但我擔心它會有類似的問題。

謝謝。

這種用法需要 memcache。去獲取 memcache,閱讀http://memcached.org上的文件。

APC 和 mod_php 的問題在於 mod_php 與 apache 在同一個程序中。這意味著您只需為所有虛擬主機配置一種 PHP 配置。

嘗試查看 PHP 的 FastCGI 介面。不幸的是,我在 apache 上設置它(我們使用 nginx)方面沒有很多經驗,但我們已經很好地使用它來分離共享託管伺服器上不同站點的配置。單獨的配置意味著將所有內容分開:您可以為不同的站點啟用不同的 PHP 模組,為不同的站點設置不同的會話儲存,為不同的站點設置不同的上傳限制等。基本上,歸結為擁有一個單獨的 PHP-FCGI 伺服器(至少)每個客戶。每個 FCGI 伺服器都有自己的配置;我們使用/srv/$domain/fcgi/php.ini,但無論對您和 Plesk 有用。

CGI 也可以工作;我不是 100% 了解 APC 是如何進行記憶體的。如果它在記憶體中,那麼 CGI 將無濟於事,因為它會為每個請求創建一個新程序,這意味著每個請求都會失去任何記憶體記憶體。需要明確的是,即使它確實有效,也不建議這樣做,但它更容易設置用於測試。

引用自:https://serverfault.com/questions/326644