Назад | Перейти на главную страницу

Что могло заставить apache2 не запускать файлы index.php через обработчик PHP FastCGI?

Я пытаюсь запустить PHP с помощью FastCGI (mod-fcgid) под apache 2 с рабочим MPM. Я использовал это сообщение в блоге в качестве справки.

Кажется, у меня все работает, кроме одного:

Когда apache обслуживает index.php неявно (я думаю, используя mod_dir), он не использует настроенный обработчик для файлов .php, а просто обслуживает файл PHP, как будто это статический контент.

Однако, когда я вручную добавляю часть index.php к URL-адресу, он правильно использует обработчик, и, похоже, все работает. Другие файлы PHP тоже работают нормально.

Чтобы уточнить:

Что могло вызвать это? Любые подсказки приветствуются!


Изменить: Некоторые подробности: это в бесстрашной системе Ubuntu.

Я заставил .php работать в FastCGI, добавив две строки PHP в mods-enabled / fcgid.conf, так что теперь это выглядит так:

<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>

Мне не нужно было никуда ставить Options + ExecCGI. На самом деле, я просто попытался закомментировать блок в sites-enabled / 000-default, и FastCGI PHP по-прежнему работает нормально, за исключением неявного index.php

Ой, я был очень глупым.

Видимо, в какой-то момент я просто неправильно его сконфигурировал, и мой браузер кэшировал неправильный ответ.

http://example.com/index.php затем сработало, вероятно, потому что я только начал пробовать это после У меня работал FastCGI PHP, поэтому в кеше не было неправильных ответов.

Другими словами, информация в моем исходном вопросе - это рабочая конфигурация для mpm-worker + PHP в mod-fcgid!

В любом случае спасибо за усилия :-)

Возможно, это глупо, но попробуйте:

<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 взаимодействуют странным образом. Конечно, иногда порядок в файле конфигурации очень важен.

Мне интересно, используется ли mod_index в обход vhost для fastcgi (т.е. отдельно от vhost, который устанавливает использование обработчика php).