【发布时间】:2016-09-02 02:19:51
【问题描述】:
请允许我声明我是 FastCGI 的新手。我的 OS X 机器上有 MAMP 的 Apache。默认 PHP 处理程序是 Apache Handler 2.0 (libphp5.so)。我想改成FastCGI,并在这里按照答案:How to configure Apache to run PHP as FastCGI on Ubuntu 12.04 via terminal?
我在 httpd.conf 的末尾添加了以下内容:
<IfModule mod_fastcgi.c>
AddHandler php5.fcgi .php
Action php5.fcgi /php5.fcgi
Alias /php5.fcgi /Applications/MAMP/fcgi-bin/php5.fcgi
FastCgiServer /Applications/MAMP/fcgi-bin/php5.fcgi -socket /Applications/MAMP/tmp/php-fcgi/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
#FastCgiExternalServer /Applications/MAMP/fcgi-bin/php5.fcgi -socket /Applications/MAMP/tmp/php-fcgi/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
<Directory /Applications/MAMP/fcgi-bin>
Order allow,deny
Allow from all
</Directory>
</IfModule>
但是,如您所见,FastCgiExternalServer 已被注释掉。相反,我必须使用FastCgiServer,否则 Apache 在尝试请求页面时会出现以下错误:
[Fri May 06 23:25:22 2016] [error] [client ::1] (2)No such file or directory: FastCGI: failed to connect to server "/Applications/MAMP/fcgi-bin/php5 .fcgi": connect() 失败
[Fri May 06 23:25:22 2016] [error] [client ::1] FastCGI:从服务器“/Applications/MAMP/fcgi-bin/php5.fcgi”收到的不完整标头(0 字节)
但是/Applications/MAMP/fcgi-bin/php5.fcgi存在,其内容是:
#!/bin/bash
PHP_CGI=/Applications/MAMP/bin/php/php5.6.2/bin/php-cgi
exec $PHP_CGI
FastCgiServer 和 FastCgiExternalServer 之间有什么区别,为什么在我的情况下 FastCgiExternalServer 不起作用但 FastCgiServer 起作用?
【问题讨论】:
-
如果你在 2016 年做 PHP fastcgi,看看 mod_proxy_fcgi 和 php-fpm 而不是 mod_fastcgi。
标签: php apache fastcgi mod-fastcgi