私は 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" : 通信失敗
[2016 年 5 月 6 日金曜日 23:25:22] [エラー] [クライアント ::1] FastCGI: サーバーから受信した不完全なヘッダー (0 バイト) "/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
?