gpt4 book ai didi

php - 在 Apache 和 NGINX 之间共享 PHP-CGI

转载 作者:行者123 更新时间:2023-12-04 22:23:21 25 4
gpt4 key购买 nike

我网站上的大部分 PHP 应用程序都在 fastcgi 后端上运行,由 NGINX 提供服务。我有一个新的应用程序,它似乎与 Apache 集成得很好;例如,它严重依赖于动态写入的 .htaccess 文件。我正在努力修改它以在本地与 NGINX 一起工作,但那还没有准备好。与此同时,我打算让 NGINX 代理所有连接到该路径的直接到 Apache,并让 Apache 处理它。

但是,我使用的是内存有限的 VPS,我宁愿不为 NGINX(使用它们自己的 APC 缓存)运行一组 PHP-CGI 进程,而为 Apache(为它们使用更多内存)运行另一组 PHP-CGI 进程 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 之后处理,但我不知道如何更改它。

最佳答案

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

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

Action中的相对路径+FastCGIExternalServer中的全路径就搞定了!

关于php - 在 Apache 和 NGINX 之间共享 PHP-CGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com