Como configurar várias versões PHP com Apache no Ubuntu

Como configurar várias versões PHP com Apache no Ubuntu

Geralmente, o gerente host usou um servidor separado para cada implantação de aplicativos de versão php. O que aumenta o custo de hospedagem. Alguns dos gerentes host estão usando o Docker para executar várias versões PHP em um único servidor. Além disso, a maioria de vocês está ciente da configuração, usei neste tutorial. Mas alguns dos administradores do sistema não estão cientes disso. Este tutorial ajudará você a instalar várias versão PHP com o Apache no Ubuntu 22.04, 20.04 e 18.04 Sistemas LTS sem alternar versões PHP.

Este tutorial descreve a instalação e configuração de dois virtuais no Apache com versões PHP separadas. O primeiro virtualhost funcionará com o Php 8.1 e outro virtualhost será executado com o Php 7.4. Então, basta passar por este tutorial. Você também pode usar mais de duas versões PHP com o Apache, conforme necessário, mas este tutorial cobre apenas dois.

Instalando o Apache2

Instale o Apache Web Server no repositório oficial. Inicie o terminal em seu sistema ou login com sistemas SSH para sistemas remotos. Execute os seguintes comandos para instalar a versão mais recente do Apache WebServer.

sudo apt update sudo apt install apache2 libapache2-mod-fcgid 

Agora ative alguns módulos necessários para a configuração de várias versões PHP com Apache. Esses módulos são necessários para integrar o PHP FPM e o FastCGI com o servidor Apache.

sudo a2enmod ações fcgid alias proxy_fcgi 

Instalando versões PHP

Para a instalação das versões PHP, usamos o PPA mantido aqui. Use os dois comandos abaixo para adicionar o PPA ao seu sistema.

sudo apt install install-properties-common sudo add-aprop-repository ppa: ondrej/php 

Para este tutorial, estamos usando Php 8.1 e php 7.4 Para configurar com o servidor da web do Apache. Para usar as múltiplas versões PHP, usaremos o PHP FPM e o FastCGI. Vamos instalar os seguintes pacotes em seu sistema.

sudo apt update sudo apt install php8.1 php8.1-fpm sudo apt install php7.4 Php7.4-fpm 

Depois da instalação, PHP-FPM Os serviços serão iniciados automaticamente. Use os seguintes comandos para garantir que os dois serviços estejam em execução.

status sudo systemctl php8.1-FPM SUDO SYSTEMCTL STATUS PHP7.4-fpm 
  • Você pode gostar: como ativar/desativar módulos de PHP no Ubuntu

Configurando hosts virtuais do Apache

Prepare -se para a configuração de sites em seu servidor Apache. Para fins de teste, estou configurando dois sites para trabalhar com duas versões diferentes de 2 PHP. Primeiro, crie dois diretórios em seu servidor.

sudo mkdir/var/www/php81 sudo mkdir/var/www/php74 

Criar um índice.arquivo php contendo o phpinfo () função.

eco "" | sudo tee -a/var/www/php81/index.php echo "" | sudo tee -a/var/www/php74/index.php 

Vamos começar a criação do VirtualHost. Apache mantém todos os arquivos de configuração do VirtualHost em/etc/apache2/sites disponíveis com a extensão .conf. Crie um arquivo para o primeiro host virtual e edite em seu editor de texto favorito.

sudo vim/etc/apache2/sites-averable/php81.exemplo.com.conf 

Adicione o seguinte conteúdo. Certifique -se de usar o nome do servidor correto e o caminho do diretório de acordo com sua configuração. Este site está configurado para trabalhar com Php 8.1.

ServerName Php81.exemplo.com opções de documentroot/var/www/php81 -Indexes +sigasymlinks +multiviews allowoverride requerem todos os # apache 2.4.10+ podem proxy para soquete unix sethandler "proxy: unix:/var/run/php/php8.1-fpm.Meia | fcgi: // localhost "
12345678910111213 ServerName Php81.exemplo.com documentroot/var/www/php81 Opções -Indexes +SigasymLinks +Multiviews allowoverRide requer todos os concedidos # Apache 2.4.10+ podem proxy para soquete unix sethandler "proxy: unix:/var/run/php/php8.1-fpm.Meia | fcgi: // localhost "

Da mesma forma, crie um segundo arquivo de configuração do VirtualHost para trabalhar com o PHP 7.4. Editar arquivo de configuração no editor de texto:

sudo vim/etc/apache2/sites-averable/php74.exemplo.com.conf 

Adicione o seguinte conteúdo ao arquivo com o nome do servidor e documentroot adequado.

ServerName Php74.exemplo.com opções com documentroot/var/www/php74 -Indexes +segue -se os links +Multiviews allowoverRide requer todos os sethendler concedidos "proxy: unix: var/run/php/php7.4-fpm.Meia | fcgi: // localhost "
123456789101112 ServerName Php74.exemplo.com documentroot/var/www/php74 Opções -Indexes +SigasymLinks +Multiviews allowoverRide requer todos os concedidos Sethandler "proxy: unix:/var/run/php/php7.4-fpm.Meia | fcgi: // localhost "

Ambos os sites estão configurados agora. Mas eles ainda não estão ativos. Apache mantém sites ativos sob/etc/apache2/sites habilitados para diretório. Você pode simplesmente criar um link simbólico de arquivos de configuração para este diretório ou usar o comando abaixo para fazer o mesmo.

sudo a2ensite php81.exemplo.com sudo a2ensite php74.exemplo.com 

Depois de fazer todas as alterações reiniciar o Apache para recarregar novas mudanças de configurações.

sudo systemctl reiniciar apache2 

Sua configuração foi concluída agora. Vá para o próximo passo para testar sua configuração.

Configuração de teste

Editar /etc /hosts arquivo no sistema local e fazer uma entrada como abaixo. Isso resolverá nomes de temperos para o endereço IP de localhost.

sudo vim /etc /hosts 

Adicione a entrada seguinte ao final do arquivo

127.0.0.1 Php81.exemplo.com 127.0.0.1 Php74.exemplo.com 

Abra um navegador da web e visite os dois sites. Você vai ver isso Php81.exemplo.com mostra a versão Php 8.1 e Php74.exemplo.com está mostrando o Php 7.4 como a configuração.

  • http: // php81.exemplo.com
    Php 8.1 com Apache
  • http: // php74.exemplo.com
    Php 7.4 com Apache

Conclusão

Este tutorial ajudou você a instalar e configurar várias versões PHP com o Apache no sistema Ubuntu Linux. Isso fornece uma solução econômica para implantar diferentes aplicativos de versão PHP em um único servidor da Web.