Como posso substituir o mapeamento .php do mod-php5 para php4-cgi por VirtualHost ou Directory?

2

Estou executando o Debian Linux com o apache2 e o libapache2-mod-php5 5.3.3-7.

Eu tenho um VirtualHost que requer o php4. Então pesquisei e compilei o php4-cgi.

No entanto, não consigo:

  1. Substituir o mapeamento de php5 do mod-php5 nesse vhost (ou mesmo globalmente, sem desabilitar o php completley).
  2. Até mesmo encontrar onde esse mapeamento é feito, na esperança de desativá-lo e ativar mod-php5 ou php4-cgi per vhost.

Este é o meu mapeamento php4-cgi (Dentro do um php4 vhost):

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>

Isso não funciona, o mod-php5 ainda executa todos os arquivos .php nesse diretório vhost /.  Se eu mudar a extensão do arquivo no AddHandler acima de .php para .php4, então os arquivos .php4 executam o php4-cgi como esperado, mas não posso alterar todos os arquivos no aplicativo para .php4.

Eu pensei que talvez eu pudesse desabilitar o mapeamento do mod-php5 no meu vhost ou diretório, então faça o meu cgi-config (como acima), mas muitas combinações destes em diferentes contextos não funcionaram:

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

O único outro lugar onde eu posso encontrar qualquer mapeamento é em /etc/mime.types, mas comentar as linhas relevantes e reiniciar o apache2 não afeta o mapeamento .php do mod-php5.

Eu pesquisei o máximo que pude, agora é um mistério para mim.

Qualquer ajuda ou direção seria muito apreciada.

    
por g0h 10.04.2012 / 19:09

2 respostas

1

A configuração mod_php por padrão para a maioria das distribuições linux estará no diretório apache em conf.d / e / ou mods-available / (por exemplo: /etc/apache2/conf.d/php5.conf ou / etc / apache2 / mods-available / mod-php5) onde o manipulador está sendo definido globalmente para o escopo dos servidores.

Você terá que alterar sua configuração para habilitar o php5 / php4 em uma base por vhost ou definir uma extensão diferente no escopo do servidor global, como .php4 para os manipuladores php4, dependendo de quantos vhosts você tiver ou pode não ser atraente.

    
por 10.04.2012 / 19:31
0

Você poderia usar ScriptAlias junto com Action - Eu escrevi um tempo atrás fazendo isso aqui: link

A essência do que você acabaria com:

ScriptAlias /php5.3 /path/to/php/bin
Action application/php5.3 /php5.3/php-cgi
    
por 10.04.2012 / 20:18