web-dev-qa-db-ja.com

Apache2がPHP FastCGIハンドラーを介してindex.phpファイルを実行しない原因は何ですか?

ワーカー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を除いて、引き続き正常に機能します。

1
Tobi

ああ、私はとても愚かだった。

どうやら私はある時点でそれを誤って設定し、私のブラウザは間違った応答をキャッシュしていました。

http://example.com/index.php その後、うまくいきました。おそらく、afterを試し始めたからでしょう。 FastCGI PHPが機能しているため、キャッシュに誤った応答はありませんでした。

言い換えれば、私の元の質問の情報は、mpm-worker + PHP in mod-fcgid!

とにかく努力してくれてありがとう:-)

1
Tobi

Mod_indexの使用がfastcgiのvhostをバイパスしているのかどうか疑問に思っています(つまり、phpハンドラーの使用を設定するvhostとは別です)。

1
Dana the Sane

これはおそらくばかげていますが、試してみてください:

<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モジュールが奇妙な方法で相互作用するとき、私はいくつかの奇妙さを発見しました。確かに、設定ファイルの順序が非常に重要な場合があります。

1
David Pashley