XAMPP com múltiplas versões do PHP no Windows 10. PHP 8, 7.4 e 5.6.

Veja como instalar o pacote servidor web XAMPP no Windows 10 com 3 versões do PHP: 8.0.2, 7.4.9 e 5.6.9.

Configurar o Apache através do arquivo httpd-xampp.conf para criar um VirtualHost com uma porta específica para cada versão do php:
http://localhost/ => para versão PHP 8.0.2
http://localhost:8074/ => para versão PHP 7.4.9
http://localhost:8056/ => para versão PHP 5.6.9

Baixe o pacote servidor XAMPP com versão PHP 8.0.2 no link abaixo:
https://www.apachefriends.org/pt_br/download.html
Usei o instalador para windows 10 64bits .

Acesse o repositório de versões do PHP no link abaixo: 
https://windows.php.net/downloads/releases/archives/
Faça o download da versão PHP de sua preferência.
Nesse tutorial usei as versões PHP Non Thread Safe(NTS) pois utilizei esse tipo de implantação:  Apache + FastCGI: Non-thread-safe.
Saiba mais sobre Thread Safe(TS) e Non Thread Safe(NTS), clique aqui.

Descompacte o pacote e coloque a pasta da versão do PHP dentro da pasta onde o XAMPP foi instalado.
No caso desse tutorial, o XAMPP foi instalado em “C:\xampp\” e a versão do PHP 7.4.9 na pasta php74 (C:\xampp\php74\).
A versão do PHP 5.6.9 na pasta php56 (C:\xampp\php56\). Veja imagem abaixo:

Dentro de cada pasta da versão do PHP possui o arquivo php.ini-development. Faça um cópia do arquivo php.ini-development e renomeie para php.ini .
Edite o php.ini com o bloco de notas e procure por: ;extension_dir = “ext”. Retire o ponto e vírgula do início para habilitar esse item e salve o arquivo.
Ainda no php.ini vamos habilitar algumas extensões do PHP retirando o ponto e vírgula no início de cada extensão. Procure pelos itens abaixo:

Retirar ponto e vírgula no início de cada item e depois salvar o arquivo php.ini para habilitar a extensão do PHP: 

;extension=bz2 OU ;extension=php_bz2.dll
--------------
;extension=curl OU ;extension=php_curl.dll
---------------
;extension=fileinfo OU ;extension=php_fileinfo.dll
---------------
;extension=gettext OU ;extension=php_gettext.dll
---------------
;extension=mbstring OU ;extension=php_mbstring.dll
---------------
;extension=exif OU ;extension=php_exif.dll
---------------
;extension=mysqli OU ;extension=php_mysql.dll
---------------
;extension=pdo_mysql OU ;extension=php_pdo_mysql.dll
---------------
;extension=pdo_sqlite OU ;extension=php_pdo_sqlite.dll

Edite o arquivo httpd-xampp.conf do Apache em “C:\xampp\apache\conf\extra\”. Veja imagem abaixo:

No final do arquivo insira os códigos abaixo responsáveis por configurar a versão do PHP no Apache e criar o VirtualHost com uma porta específica para cada versão do PHP. Após inserir os códigos, não esqueça de salvar o  arquivo httpd-xampp.conf.

Código para configura a versão PHP 7.4.9 no Apache e criar o VirtualHost com a porta 8074:
http://localhost:8074/

ScriptAlias /php74/ "C:/xampp/php74/"
<Directory "C:/xampp/php74">
     AllowOverride None
     Options None
     Require all denied
   <Files "php-cgi.exe">
     Require all granted
   </Files>
</Directory>

Listen 8074
<VirtualHost *:8074>
     UnsetEnv PHPRC
   <FilesMatch "\.php$">
     php_flag engine off
     SetHandler application/x-httpd-php74
     Action application/x-httpd-php74 "/php74/php-cgi.exe"
   </FilesMatch>
</VirtualHost>

Código para configura a versão PHP 5.6.9 no Apache e criar o VirtualHost com a porta 8056:
http://localhost:8056/

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

Listen 8056
<VirtualHost *:8056>
     UnsetEnv PHPRC
   <FilesMatch "\.php$">
     php_flag engine off
     SetHandler application/x-httpd-php56
     Action application/x-httpd-php56 "/php56/php-cgi.exe"
   </FilesMatch>
</VirtualHost>

Através do Control Panel do XAMPP, reinicie o servidor. Dessa forma você pode inserir mais versões do PHP usando o XAMPP e especificar uma porta para executar a versão do PHP desejada para um determinado projeto.

Sobre Bruno

Simplesmente um Programador

2 Comentários

  1. Robson Pires Borges

    Olá.. quase deu certo aqui… Porém ao acessar a porta 8074 as páginas são negadas… “Forbidden
    You don’t have permission to access this resource. Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 Server at localhost Port 80”

    Responder

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *