php4 e php5 são incompatíveis entre si. Você precisará usar a versão antiga, sem suporte (que você terá que construir a partir da fonte), ou usar o php5 e atualizar seus sistemas. Você não pode executar os dois simultaneamente sem quebras.
Embora haja muitas respostas sobre como executar o php5 e o php4 juntos, não encontrei respostas que atendam ao meu cenário específico.
Eu configurei um novo servidor Ubuntu 12.4 instalado apache 2 e PHP 5.3. Eu tenho uma necessidade de executar o php 4.4.9 devido a ter que trabalhar com um antigo sistema CMS foi escrito há muito tempo, ainda é mantido e encontra erros quando executado via php5.
Portanto, o php5 está sendo executado como um módulo do apache.
Eu quero rodar o php4 e tudo aponta para ter que rodar isso como cgi. Eu vi as soluções onde as pessoas tinham que alterar as extensões de arquivo para .php4 e executá-las através do manipulador cgi, mas eu não tenho isso como uma opção para o php4 ou php5. Muitos arquivos e a base de código é compartilhada.
Primeira pergunta, posso instalar o php4 como um módulo também? acompanhamento, qual é a melhor maneira de fazer isso?
segunda pergunta, posso fazer com que o manipulador que muda para o php4 faça isso em um caminho de diretório em vez de apenas * .php4? Por isso, posso enumerar uma lista de diretórios ou usar vários < Diretório > blocos para ter apenas arquivos php nesses diretórios executados como php4.
obrigado - Keith
php4 e php5 são incompatíveis entre si. Você precisará usar a versão antiga, sem suporte (que você terá que construir a partir da fonte), ou usar o php5 e atualizar seus sistemas. Você não pode executar os dois simultaneamente sem quebras.
Você pode configurar o php4 para ser executado em um servidor da Web totalmente diferente, seja o apache 1.3 ou o lighthttpd. Basta configurar esse servidor para escutar em uma porta diferente (não a porta 80), e usar isso diretamente ou configurar uma certa quantidade de reescritas no apache2 para direcionar as solicitações do php4 para o outro servidor da web.
Isso seria muito trabalho e configuração, potencialmente mais do que apenas usar CGI.
Para a primeira pergunta, eu não acredito que isso seja sábio, mesmo que seja possível - o que pode ser, eu não conheço ninguém que tenha tentado isso.
Para a segunda pergunta, você pode realmente fazer isso.
No entanto, você precisa dizer ao Apache qual manipulador deve ser usado para as pastas que contêm seu aplicativo PHP4.
A maneira normal de executar o php4 como cgi é:
Add Handler php-script .php4
Action php-script /cgi-bin/php4
Mas isso não é exatamente o que você quer, então precisamos mudar algo assim:
RemoveHandler .php
Add Handler php-script .php
Action php-script /cgi-bin/php4
Você pode precisar adicionar uma opção ExecCGI
à pasta raiz do aplicativo também.
Eu não posso testar isso no momento, então há uma chance de que não funcione. Como alternativa, você poderia colocar em uma reescrita que mudou todas as solicitações de arquivos .php para .php4
Observe que tudo depende de ter direitos suficientes para fazer essas alterações em um arquivo .htaccess ou em um arquivo conf do apache (que requer direitos para reiniciar o servidor apache).
UPDATE : quanto mais penso na minha resposta, menos acho que funcionará. Verificando o arquivo conf mod_php5, eu posso ver que o manipulador está realmente configurado contra um tipo mime application/x-httpd-php
, então você teria que ajustar isso também.
Então, talvez a reescrita seja a melhor.
Existe outra possibilidade, no entanto. Se você tiver acesso aos arquivos de configuração do apache, poderá esvaziar /etc/apache/mods-available/php5.conf
e mover o conteúdo para uma configuração específica do site. Então você poderia colocar uma configuração específica do php4 em outro host virtual ou mesmo em uma pasta - embora nesse caso, você provavelmente precisará incluir a configuração do php5 em vários lugares (para cada pasta raiz do aplicativo em seu servidor web).
UPDATE 2 : Na verdade, a resposta para a pergunta 1 também é "sim", isto é, de fato possível. Você pode executar tanto fazendo uso do suPHP . Embora você deva ler sobre as possíveis limitações de executar o PHP desta maneira.