我最近将我的低中等流量(1000 个 UAU,繁忙日 5000 次页面浏览量)网站从共享主机移至 Centos 6 64 位 VPS,其中 Apache 和 cPanel 在 4 个四核处理器(可能超卖)和 3GB 内存(Xen)上运行。
我们从一开始就遇到了问题。服务器不断崩溃。似乎 PHP 一直在扩展,直到它消耗了所有内存并导致服务器崩溃。
有人建议我放弃 Apache/cPanel/PHP/mySQL,改用 nginX/Varnish/PHP-FPM/SQLite。但这对我来说不可能,因为我不太懂技术,需要一个简单的 GUI(如 cPanel)来管理日常管理任务(负担不起聘请系统管理员或获得完全托管的主机)。
我看过几篇讨论 Apache 针对 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,从那时起一切都很顺利。
答案1
根据我的经验,您似乎没有重新编译 Apache/PHP。我假设如此。如果是这样,请执行以下操作:
登录 WHM 并转到Main >> Software >> EasyApache (Apache Update)
- 选择任意配置并点击
Start customization based on profile
- 选择最新版本的 Apache
- 选择非测试版或已弃用的 PHP 最新版本(生命周期结束是可以的,并且稳定)
- 第五步,向下滚动并选择
Exhaustive Options List
并记笔记mod_fcgid
- 将有助于加快 PHP 和 suPHP 的安装速度。我不会详细介绍哪个更好,因为这些可以留给元线程和谷歌。Mod SuPHP
- 将通过强制以用户身份而不是用户身份运行 PHP 脚本来帮助保护 PHPnobody
- 禁用
frontpage
- 无用,已弃用,并且直到几个月前,仍然被选为 cPanel 的默认设置。 - 为了方便起见,
IonCube Loader for PHP
如果您使用使用 IonCube 的脚本,请选择。 - 选择
Mod Security
安全性帮助防止机器人和其他恶意行为发生在您的 WordPress 安装中。Mod Security
如果您想了解更多信息,请 Google。 - 选择
Zend Optimizer for PHP
它是因为它将优化 PHP 的部分功能并为 Zend 框架提供便利。 - 选择它
Xcache for PHP
,因为它会将 PHP 的操作码存储在内存中。这将有助于加快页面性能。 - 选择您要安装的任何 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
- 保存您的配置并构建 Apache。
- 完成后,请确保 -这是最重要的部分-
Main >> Service Configuration >> Configure PHP and SuExec
您选择PHP 5 Handler
的是suPHP.
希望这能改善您的表现。如果没有更多具体信息,这是我们能做的最好的事情。如果这种情况继续发生,我建议您聘请专业人士,或者您向我们提供更多信息。