繁体   English   中英

在Apache和NGINX之间共享PHP-CGI

[英]Sharing PHP-CGI between Apache and NGINX

我已经在NGINX提供的fastcgi后端上的网站上运行了我的大多数PHP应用程序。 我有一个新的应用程序,它似乎与Apache集成得很好。 例如,它严重依赖于动态编写的.htaccess文件。 我正在努力对其进行修改,以使其能够与NGINX一起使用,但这还没有准备好。 同时,我将让NGINX代理直接将与该路径的所有连接直接传递给Apache,并让Apache处理它。

然而,我在一个内存有限的VPS,并(使用更多的内存为他们的 APC缓存)我宁愿不运行NGINX(用自己的APC缓存)一组PHP,CGI程序的,另一个是Apache的。 有人在两者之间共享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之后处理的,但是我不知道如何更改。

问题解决了。 诀窍是使用以下几行

FastCGIExternalServer /var/www/fast-cgi-fake-handler -host 127.0.0.1:9000
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /fast-cgi-fake-handler

Action中的相对路径+ FastCGIExternalServer中的完整路径做到了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM