ワーカーMPMを使用してApache2でFastCGI(mod-fcgid)を使用してPHPを実行しようとしています。 このブログ投稿 を参照として使用しました。
1つを除いて、すべてが機能しているようです。
Apacheが暗黙的にindex.phpを提供する場合(mod_dirを使用すると思います)、. phpファイル用に構成されたハンドラーを使用せず、静的コンテンツであるかのようにPHPファイルを提供します。
ただし、index.phpの部分を手動でURLに追加すると、ハンドラーが正しく使用され、すべてが機能しているように見えます。その他のPHPファイルも正常に機能します。
明確にするために:
何が原因でしょうか?ヒントは大歓迎です!
編集:いくつかの詳細:これはUbuntuの勇敢なシステム上にあります。
2つのPHP行をmods-enabled/fcgid.confに追加することで、FastCGIで.phpを機能させることができたので、次のようになります。
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
IPCConnectTimeout 20
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
</IfModule>
ディレクトリインデックスはmods-enabled/dir.confで設定されます。
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
オプション+ ExecCGIをどこにも置く必要はありませんでした。実際、sites-enabled/000-defaultでブロックをコメントアウトしようとしましたが、FastCGI PHPは、暗黙のindex.phpを除いて、引き続き正常に機能します。
ああ、私はとても愚かだった。
どうやら私はある時点でそれを誤って設定し、私のブラウザは間違った応答をキャッシュしていました。
http://example.com/index.php その後、うまくいきました。おそらく、afterを試し始めたからでしょう。 FastCGI PHPが機能しているため、キャッシュに誤った応答はありませんでした。
言い換えれば、私の元の質問の情報は、mpm-worker + PHP in mod-fcgid!
とにかく努力してくれてありがとう:-)
Mod_indexの使用がfastcgiのvhostをバイパスしているのかどうか疑問に思っています(つまり、phpハンドラーの使用を設定するvhostとは別です)。
これはおそらくばかげていますが、試してみてください:
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
IPCConnectTimeout 20
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
DirectoryIndex index.php
</IfModule>
Apacheモジュールが奇妙な方法で相互作用するとき、私はいくつかの奇妙さを発見しました。確かに、設定ファイルの順序が非常に重要な場合があります。