![PHP 网络服务器的最快选项](https://linux22.com/image/481378/PHP%20%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%9C%80%E5%BF%AB%E9%80%89%E9%A1%B9.png)
我需要运行一个处理大量请求的 PHP 应用程序。我想知道使用 Apache 以外的任何产品是否真的有好处,以及替代方案的优缺点是什么。
我有使用 lighttpd 和 nginx 开发 Rails 应用程序的经验。它们也是 PHP 的优秀竞争者吗?有什么重要的设置技巧吗?
PHP 加速器怎么样?它们可以与这些替代服务器一起使用吗?这是一个好主意吗?
我在一个 OpenSolaris 盒子上。
不确定是否相关,但稍后我计划在此服务器前面放置一个 Varnish 代理/缓存。
编辑:
我想补充一点,我绝对没有打算碰这个应用程序。这是 PHP 最典型的混乱之处,而且我基本上没有时间。
答案1
Apache 是一个带有 mod-php 的良好基础 - 并且添加 APC 用于字节码缓存,并且一些变量缓存将有很大帮助,事实上,它是加快 PHP 脚本运行时间最明显的事情(此外,使用 Yslow 来加速 HTML 前端并确保数据库得到优化)。
不过,我还是想提一些建议,比如避免使用 Apache 提供图片和其他静态内容。我有一个单独的(子)域,里面有一个专用的图片服务器(我使用thttpd, 但nginx也完全合适)。不过,从完全独立的域名(或 CDN)提供图像会更好。
NginX 还具有充当代理的优势,它可以处理入站连接,然后将结果反馈回来 - 这意味着 Apache2/Mod_php 的后端生产者进程可以以完整的本地网络速度工作,而不必等待 Web 浏览器客户端赶上来。
Varnish 可以执行 Nginx 无法完成的额外工作,但我对它不太了解 - 可能只需要其中之一,但不太可能同时使用两者。
答案2
答案3
由于 Wordpress 网站,我的带有 mod_php 的 Apache 服务器内存不足。因此,在优化了 Wordpress 之后,我转向了 Apache。我发现 mod_fastcgi 比 mod_fcgi 效果更好。将 PHP 从 Apache 中移出减少了 Web 服务器的占用空间(从每个进程 38M 减少到 4M)。我还安装了 eAccelerators,发现 PHP 运行速度更快。此外,如果您的页面包含大量内容(CSS 和 javascript),我在 Wordpress 中使用的技巧之一是将包含的内容压缩为一个文件,以减少空白(但这可能更像是 Wordpress 的产物)。
因此我建议将 PHP 移出 Apache(并使用 mod_fastcgi [php-cgi] 移入单独的进程)会有所帮助。请注意,PHP 加速器将增加 PHP 进程的内存需求(这是将其移出 Apache 进程的另一个原因)。