9

私は 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とと の違いはFastCgiExternalServerFastCgiExternalServerですかFastCgiServer?

4

2 に答える 2

1

パフォーマンスが理由なら、Apache と fcgid を使用するといいでしょう。これにより、パフォーマンスが向上すると見なされます。パフォーマンスに対処するために、mod_fcgid は CGI プログラムの複数のインスタンスを開始して同時要求を処理します。これは、PHP 開発者向けの mod_php の代替であり、より高いパフォーマンスを提供します。私が見つけたこの記事は、学ぶための素晴らしいリソースです

http://2bits.com/articles/apache-fcgid-acceptable-performance-and-better-resource-utilization.html

于 2016-07-11T19:07:15.890 に答える