我最近接手了一个运行 PHP 和 Apache 的 WebServer。PHP 目前正在通过 Apache 的 mod_fastcgi 使用 PHPFPM。一切都运行良好,但是在我研究以确保我了解实现的进出时,我遇到了一个令人费解的配置。在 Apache WebServer 上,使用以下内容:
ScriptAlias /php-cgi "/usr/local/bin/php-cgi"
AddHandler php-fastcgi .php
Action php-fastcgi /php-cgi
FastCGIExternalServer /usr/local/bin/php-cgi -socket /tmp/php-fpm.sock -idle-timeout 60 -pass-header Authorization
现在,如前所述,上述配置工作正常。但似乎这种配置使用了两种解决方案——PHP-CGI 解决方案和 PHP-FPM 解决方案。根据我的阅读和理解,PHP-FPM 提供了 PHP-CGI 的替代品,而不是与它一起运行的东西。因此,我认为以下配置应该到位:
ScriptAlias /php-cgi "/usr/local/sbin/php-fpm"
AddHandler php-fastcgi .php
Action php-fastcgi /php-cgi
FastCGIExternalServer /usr/local/sbin/php-fpm -socket /tmp/php-fpm.sock -idle-timeout 60 -pass-header Authorization
第二种配置(使用 PHP-FPM)也可以。我没有注意到两者之间的任何东西,但我担心其中一个实际上是错误的。
有人愿意分享他们的想法、发现或回答应该采用哪种配置吗?当我应该运行 php-fpm 时,我不喜欢运行 php-cgi 的想法。
提前谢谢,杰森