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

Как я могу переопределить сопоставление .php mod-php5 с php4-cgi для VirtualHost или Directory?

Я запускаю Debian Linux с apache2 и libapache2-mod-php5 5.3.3-7.

У меня есть один VirtualHost, для которого требуется php4. Итак, я исследовал и скомпилировал php4-cgi.

Однако я не могу:

  1. Переопределите отображение mod-php5 для .php в этом виртуальном хосте (или даже глобально, без отключения php Complete).
  2. Даже найдите, где сделано это сопоставление, в надежде отключить его и включить mod-php5 или php4-cgi для каждого виртуального хоста.

Это мое отображение php4-cgi (внутри одного vhost php4):

ScriptAlias /php4 /usr/local/php4/bin

<Directory /usr/local/php4/bin>
  Options +ExecCGI +FollowSymLinks
</Directory>

<Directory /www/test>
  AddHandler php4-cgi-script .php
  Action php4-cgi-script /php4/php
  Options +ExecCGI
</Directory>

Это не работает, mod-php5 по-прежнему запускает все файлы .php в этом каталоге vhost /. Если я изменю расширение файла в AddHandler выше с .php на .php4, тогда файлы .php4 будут запускать php4-cgi, как ожидалось, но я не могу изменить все файлы в приложении на .php4.

Я подумал, может быть, я могу отключить отображение mod-php5 в моем виртуальном хосте или каталоге, а затем выполнить мою cgi-config (как указано выше), но многие их комбинации в разных контекстах не работали:

RemoveHandler .php
RemoveType .php
php_flag engine off (this seems to even disable my php4-cgi so that wont work)

Единственное другое место, где я могу найти какое-либо отображение, - это /etc/mime.types, но комментирование соответствующих строк и перезапуск apache2 не влияет на отображение .php mod-php5.

Я искал столько, сколько мог, теперь это для меня загадка.

Любая помощь или направление будут очень благодарны.

Конфигурация mod_php по умолчанию для большинства дистрибутивов Linux будет в каталоге apache в conf.d / и / или mods-available / (например: /etc/apache2/conf.d/php5.conf или / etc / apache2 / mods -available / mod-php5), где обработчик определяется глобально для области серверов.

Вам нужно будет либо изменить свою конфигурацию, чтобы включить php5 / php4 для каждого виртуального хоста, либо определить другое расширение в глобальной области сервера, например .php4 для обработчиков php4, в зависимости от того, сколько у вас есть vhosts, это может или не может быть привлекательный.

Вы можете использовать ScriptAlias ​​вместе с Action - я уже писал об этом здесь: http://tales.itnobody.com/2009/05/running-parallel-versions-of-php-part-2.html

Суть того, что у вас получится:

ScriptAlias /php5.3 /path/to/php/bin
Action application/php5.3 /php5.3/php-cgi