Nesse tutorial ensinarei como rodar a versão 5.6 e 7.4 simultanamente e escolher qual versão utilizar configurando tanto o htacess quanto a vhost
Pré Requisitos
Você já deve ter o Apache2 instalado e funcionando corretamente no seu servidor. Esse tutorial utilizou a versão 18.04 do Ubuntu.
1 – Adicionar repositório
Primeiro, atualizar a lista de pacotes do apt:
$ sudo apt update
Instale o libapache2-mod-fcgid. Esse é o módulo que faz a integração do apache2 com o php fastcgi:
$ sudo apt install libapache2-mod-fcgid
Para adicionar novos repositórios com o comando add-apt-repositories, você provavelmente vai precisar instalar o pacote software-properties-common :
$ sudo apt install software-properties-common
Vamos adicionar o repositório PHP do Ondřej’s que nos permitirá fazer o download de ambas as versões do PHP:
$ sudo add-apt-repository ppa:ondrej/php && sudo apt update
2 – Instalar o PHP
Agora já podemos instalar as versões que desejarmos. Esse repositório possui as versões 5.6 e 7.x do PHP. No nosso tutorial utilizaremos as versões 5.6 e 7.4
$ sudo apt install php5.6 php5.6-fpm
$ sudo apt install php7.4 php7.4-fpm
Pressione y ou ENTER quando aparecer o prompt de instalação.
Depois de instalado, você deve ter dois sockets rodando em /var/run/php
$ ls /var/run/php/
total 8 -rw-r--r-- 1 root root 4 Feb 17 16:50 php5.6-fpm.pid srw-rw---- 1 www-data www-data 0 Feb 17 16:50 php5.6-fpm.sock -rw-r--r-- 1 root root 5 Feb 17 16:51 php7.4-fpm.pid srw-rw---- 1 www-data www-data 0 Feb 17 16:51 php7.4-fpm.sock
No passo 3 utilizaremos a diretiva <FilesMaetch> para informar ao Apache qual socket do utilizaremos.
Extensão MySQL
Se você for usar o MySQL será necessário instalar as exntesões de integração entre o PHP e o MySQL:
$ sudo apt install php5.6-mysql
$ sudo apt install php7.4-mysql
Outras extensões
Lembre-se que todas extensão do PHP que você precisar instalar você deverá instalar para ambas as versões do PHP. Por exemplo, para instalar o cURL:
$ sudo apt install php5.6-curl
$ sudo apt install php7.4-curl
3 – Configurar o Apache
Precisaremos adicionar alguns módulos do Apache utilizando o comando a2enmod :
$ sudo a2enmod actions alias proxy_fcgi fcgid
Reinicie o Apache:
$ sudo systemctl restart apache2
A partir de agora você pode utilizar tanto os arquivos de configuração do vHost quanto o htaccess para informar ao Apache qual versão do PHP você quer utilizar.
4 – Virtual Hosts
Abra o arquivo de configuração .conf do seu site e adicione a seguinte diretiva <FilesMatch>. Isso informará qual versão do PHP o Apache deverá utilizar para aquele site:
PHP 5.6
<VirtualHost *:80> ... <FilesMatch \.php$> # Apache 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/" </FilesMatch> ... </VirtualHost>
Certifique-se de reiniciar o Apache para que as alterações tenham efeito.
$ sudo systemctl restart apache2
PHP 7.4
<VirtualHost *:80> ... <FilesMatch \.php$> # Apache 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/" </FilesMatch> ... </VirtualHost>
$ sudo systemctl restart apache2
5 – htaccess
A diretiva <FilesMatch> também pode ser utilizada no arquivo htaccess. Poré, certifique-se primeiro de que a diretiva AllowOverride está ativa, senão o Apache vai ignorar o arquivo htaccess.
Abra o arquivo de configuração do Apache:
$ sudo nano /etc/apache2/apache2.conf
Vá até a sessão <Directory /var/www/> e certifique-se de que AllowOverride está configurado para All
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Salve e saia do arquivo usando CTRL + X, pressionando y e depois ENTER.
Reinicie o Apache:
$ sudo systemctl restart apache2
Agora, você pode adicionar a diretiva <FilesMatch> no arquivo htaccess:
PHP 5.6
<FilesMatch \.php$> # Apache 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/" </FilesMatch>
PHP 7.4
<FilesMatch \.php$> # Apache 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/" </FilesMatch>
Testar o PHP
Para ver qual versão do PHP seu site está usando, crie um arquivo chamado info.php no diretório raiz do seu site.
$ sudo nano /var/www/html/info.php
Insira o seguinte código:
<?php phpinfo(); ?>
Salve e saia do arquivo usando CTRL + X, pressionando y e depois ENTER.
Agora acesse o seu site assim: http://seusite/info.php
Uma tela parecida com essa deverá aparecer:
Esse artigo foi traduzido do devanswers