Utilizar mais de uma versão do PHP no Xampp

Utilizar mais de uma versão do PHP no Xampp

Por que alternar entre versões do PHP quando você pode usar várias versões do PHP ao mesmo tempo com uma única instalação do xampp ? Com uma única instalação do xampp, você tem 2 opções:

  1. Execute uma versão PHP mais antiga apenas para o diretório do seu projeto antigo: isso servirá ao objetivo na maioria das vezes; você pode ter um ou dois projetos antigos que pretende executar com a versão PHP mais antiga. Basta configurar o xampp para executar a versão mais antiga do PHP apenas para esses diretórios do projeto.
  2. Execute uma versão mais antiga do PHP em uma porta separada do xampp: Às vezes, você pode estar atualizando o projeto antigo para a versão mais recente do PHP quando precisar executar o mesmo projeto na nova e mais antiga versão do PHP. Em seguida, você pode definir uma versão mais antiga do PHP em uma porta diferente (por exemplo, 8056); portanto, quando você http://localhost/any_project/acessa o xampp, executa o PHP 7 e, quando http://localhost:8056/any_project/acessa o xampp, executa o PHP 5.6.
  3. Execute uma versão mais antiga do PHP em um host virtual: Você pode criar um host virtual como o localhost56 para executar o PHP 5.6 enquanto pode usar o PHP 7 no localhost.

Vamos configurá-lo.

Etapa 1: Faça o download do PHP

Então você tem o PHP 7 rodando no xampp, você quer adicionar uma versão mais antiga do PHP, digamos PHP 5.6. Faça o download da versão nts (Non Thread Safe) do arquivo zip do PHP no php.net (consulte o arquivo para versões mais antigas) e extraia os arquivos em c:\xampp\php56. A versão segura do thread não inclui o php-cgi.exe.

Etapa 2: configurarphp.ini

Abra o arquivo c:\xampp\php56\php.ini no bloco de notas. Se o arquivo não existir cópia php.ini-development para php.ini e abri-lo no bloco de notas. Descomente a seguinte linha:

extension_dir = "ext"

Etapa 3: configurar o apache

Abra o painel de controle do xampp, clique no botão de configuração do apache e clique em Apache (httpd-xampp.conf). Um arquivo de texto será aberto, colocando as seguintes configurações na parte inferior do arquivo:

ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Nota: Você pode adicionar mais versões do PHP à sua instalação do xampp, seguindo as etapas de 1 a 3, se desejar.

Etapa 4 (opção 1): [Adicione diretórios para executar uma versão específica do PHP]

Agora você pode definir diretórios que serão executados no PHP 5.6. Basta adicionar o seguinte na parte inferior do arquivo de configuração para definir diretórios.

<Directory "C:\xampp\htdocs\my_old_project1">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

<Directory "C:\xampp\htdocs\my_old_project2">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

Etapa 4 (opção 2): [Execute a versão mais antiga do PHP em uma porta separada]

Agora, para configurar o PHP v5.6 na porta 8056, adicione o seguinte código na parte inferior do arquivo de configuração.

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

Etapa 4 (opção 3): [Execute uma versão mais antiga do PHP em um host virtual]

Para criar um host virtual (localhost56) em um diretório (htdocs56) para usar o PHP v5.6 em http: // localhost56 , crie o diretório htdocs56 no local desejado e adicione localhost56 ao arquivo do host ( veja como ) e adicione o código a seguir na parte inferior do arquivo httpd-xampp.conf.

<VirtualHost localhost56:80>
    DocumentRoot "C:\xampp\htdocs56"
    ServerName localhost56
    <Directory "C:\xampp\htdocs56">
        Require all granted
    </Directory>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

Concluir: Salvar e reiniciar o Apache

Salve e feche o arquivo de configuração. Reinicie o apache no painel de controle do xampp. Se você optou pela opção 2, pode ver a porta adicional (8056) listada no painel de controle do xampp.

Atualização para erro:
cabeçalho malformado do script ‘php-cgi.exe’: cabeçalho incorreto

Se você encontrar o erro acima, abra httpd-xampp.conf novamente e comente a seguinte linha com um # inicial (caractere de hash).

SetEnv PHPRC "\\path\\to\\xampp\\php"