【发布时间】:2010-10-09 03:35:27
【问题描述】:
我一直在我的网站上的 fastcgi 后端运行我的大部分 PHP 应用程序,由 NGINX 提供服务。我有一个新应用程序,它似乎与 Apache 集成得很好;例如,它严重依赖于动态编写的 .htaccess 文件。我正在努力修改它以与 NGINX 一起工作,但这还没有准备好。同时,我打算让 NGINX 代理到该路径的所有连接直接到 Apache,并让 Apache 处理它。
但是,我在内存有限的 VPS 上,我宁愿不为 NGINX 运行一组 PHP-CGI 进程(使用它们自己的 APC 缓存)和为 Apache 运行另一组(为它们的 使用更多内存) APC 缓存)。有没有人有幸在两者之间共享 PHP?
mod_fcgid 似乎不支持使用已经运行的服务器,所以我尝试了 mod_fastcgi。起初这似乎有效,但占用了相当多的内存(承诺——它正在增长,而不仅仅是静态的)。更糟糕的是,我无法让我的 apache 配置中的 DirectoryIndex 行与 mod_fastcgi 一起使用!
我加了
AddHandler php5-fastcgi .php FastCgiExternalServer /var/www -host 127.0.0.1:9000到我的 Apache 配置,所有 .php 页面都被处理,但是像 http://example.com/foo/ 这样的路径不服务器 /foo/index.php!如果我删除 FastCgiExternalServer,它确实会找到 index.php,但当然只是将其显示为文本。
我假设这是因为 DirectoryIndex 在 FastCgiExternalServer 之后处理,但我不知道如何更改。
【问题讨论】:
-
您可以将解决方案作为答案发布并接受。