Apache Handler 2.0
(libphp5.so)。我想改成FastCGI
,并按照这里的答案进行操作:如何通过终端配置Apache在Ubuntu 12.04上运行PHP作为FastCGI?
我在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() failed
[Fri May 06 23:25:22 2016] [error] [client ::1] FastCGI: incomplete headers (0 bytes) received from server "/Applications/MAMP/fcgi-bin/php5.fcgi"
但是
/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
可以工作?