Apache-2.2

Apache 上的低流量 WordPress 網站不斷崩潰伺服器

  • September 12, 2013

我最近將我的中低流量(1000 個 UAU,在忙碌的一天有 5000 次瀏覽量)網站從共享主機轉移到 Centos 6 64 位 VPS,Apache 和 cPanel 在 4 個四核處理器(可能超賣)和 3GB 記憶體上執行(Xen)。

我們從一開始就有問題。伺服器不斷崩潰。似乎 PHP 一直在擴展,直到它耗盡所有記憶體並使伺服器崩潰。

有些人建議我應該放棄 Apache/cPanel/PHP/mySQL 並使用 nginX/Varnish/PHP-FPM/SQLite。但這對我來說是不可能的,因為我不是很精通技術,需要像 cPanel 這樣的簡單 GUI 來管理平凡的管理任務(無法聘請系統管理員或獲得完全託管的主機)。

我遇到過幾篇討論 Apache for WordPress 優化的文章。但所有這些都導致​​了相當過時的文章,例如 2009 年 1 月的這篇 ~ 4 歲的文章 - http://thethemefoundry.com/blog/optimize-apache-wordpress/

這篇文章非常詳細,似乎很有幫助,但我什至在第一步就絆倒了。我的 httpd.conf 只有 2 個 loadmodule 命令

LoadModule fastinclude_module modules/mod_fastinclude.so  
LoadModule bwlimited_module modules/mod_bwlimited.so

所以我就在那裡徹底破產。此外,我的 httpd.conf 說

在隨後重新生成配置文件時,對 Apache 配置文件的直接修改可能會失去。要保留修改,必須通過執行將所有修改簽入配置系統:/usr/local/cpanel/bin/apache_conf_distiller

我無法找到在 WHM 中更改模組的位置。

請有人可以幫助我更新有關如何為 WordPress 優化 Apache 的指南?非常感謝!

PS WordPress 安裝還安裝了 WP Super Cache。

PPS 我還安裝了 phpBB、OpenCart 和 Menalto Gallery。

更新:

最終證明是 PHP 5.3.3 記憶體洩漏。很偶然的發現。最初認為 Apache 是罪魁禍首。盡一切可能,包括遷移到 nginx 和安裝 Varnish。使用整個 RAM 需要越來越長的時間,但我不可避免地會到達那裡。最後在 NewRelic 的幫助下,發現 PHP 應用程序隨著時間的推移增加了記憶體使用量……程序從未被殺死或類似的東西。將 PHP 升級到 5.4.16,從那以後一切都變得很糟糕。

根據我的經驗,您似乎沒有重新編譯 Apache/PHP。我假設這個。如果是這樣,請執行以下操作:

登錄 WHM 並轉到Main >> Software >> EasyApache (Apache Update)

  1. 選擇任何配置並點擊Start customization based on profile

  2. 選擇最新版本的 Apache

  3. 選擇非 beta 或不推薦使用的最新版本的 PHP(生命週期結束是可以的且穩定的)

  4. 在第五步,向下滾動並選擇Exhaustive Options List並記筆記

  5. mod_fcgid- 將有助於加快您安裝 PHP 和 suPHP 的速度。我不打算詳細說明哪個更好,因為這可以留給元執行緒和Google。

  6. Mod SuPHP- 將通過強制 PHP 腳本以使用者而不是使用者身份執行來幫助保護 PHPnobody

  7. 禁用frontpage- 無用、已棄用,直到幾個月前,仍被選為 cPanel 上的預設設置。

  8. 為方便起見,請選擇IonCube Loader for PHP使用 IonCube 的腳本。

  9. 選擇Mod Security安全性,這將有助於防止機器人和其他討厭的事情發生在您的 wordpress 安裝中。GoogleMod Security如果你想了解更多。

  10. 選擇Zend Optimizer for PHP它,因為它將優化 PHP 的某些部分並為 Zend 框架提供便利。

  11. 選擇Xcache for PHP它會將 PHP 的操作碼儲存在記憶體中。這將有助於加快頁面性能。

  12. 選擇您要安裝的任何 PHP 模組。我的生產伺服器上有以下內容。如果您想了解更多資訊(或在此處詢問有關它的問題),請自行搜尋哪個模組。您可以將此作為參考點。在大多數情況下,添加模組不會降低您的性能,但只會在您想在伺服器上安裝更多應用程序而不需要重新編譯 Apache/PHP 時提供便利。

    • Bcmath, Bz2, CGI, Calendar, Curl, CurlSSL, Curlwrappers, Dbase, Exif, FTP, Fastcgi, Force CGI Redirect, GD, Gettext, Iconv, Imap, MM, Magic Quotes, MailHeaders, Mbregex, Mbstring, Mcrypt, Mhash, Mime Magic, Mysql , Mysql of the system , MySQL "Improved" extension. , Openssl, PDO, PDO MySQL, POSIX, Path Info Check, Pear, Pspell, Sockets, TTF (FreeType), Tidy, Wddx, XSL, XmlRPC, Zend Multibyte, Zip, Zlib
  13. 保存您的配置並建構 Apache。

  14. 完成後,確保 -這是重要的部分- 在Main >> Service Configuration >> Configure PHP and SuExec您選擇PHP 5 HandlersuPHP.

希望這會提高你的表現。如果沒有更具體的資訊,這是我們能做的最好的事情。如果這種情況繼續發生,或者您向我們提供更多資訊,我建議您聘請專業人士。

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