Como instalar a versão PHP múltipla com o nginx no Ubuntu 18.04 e 16.04

Como instalar a versão PHP múltipla com o nginx no Ubuntu 18.04 e 16.04

Geralmente, o Web Hosting Manager usou um servidor separado para cada implantação de aplicativos de versão PHP. O que aumenta o custo de hospedagem. Como alternativa, você pode executar vários contêineres do Docker para várias versões PHP.

Este tutorial ajuda você com a instalação e configuração de dois virtuais no servidor da web nginx com diferentes versões de php. O primeiro virtualhost funcionará com o Php 5.6 e outro virtualhost será executado com o Php 7.2. Então, basta passar por este tutorial. Você também pode usar mais de duas versões PHP com Nginx, conforme necessário, mas este tutorial cobre apenas dois.

Instalação 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 python-software-properties sudo add-aprop-repository ppa: ondrej/php 

Para este tutorial, usei o PHP 5.6 e Php 7.2 Para configurá -lo com o Nginx Web Server. Para usar as múltiplas versões PHP, usaremos o PHP FPM e o FastCGI. Vamos instalar os seguintes pacotes em seu sistema.

APT UPDATE SUDO APT INSTAL.6 Php5.6-fpm sudo apt install php7.2 Php7.2-fpm 

Você também pode precisar instalar módulos PHP adicionais. Para o tutorial, apenas os pacotes acima são necessários.

Após a instalação, os serviços PHP-FPM serão iniciados automaticamente. Use os seguintes comandos para garantir que os dois serviços estejam em execução.

status sudo systemctl php5.6-FPM SUDO SYSTEMCTL STATUS PHP7.2-fpm 
  • Recomendado: Como ativar/desativar os módulos de PHP no Ubuntu

Instalação Nginx

O servidor da web nginx está disponível no repositório oficial do Ubuntu. 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 disponível do Nginx Web Server.

sudo apt update sudo apt install nginx 

Configuração Nginx

Prepare -se para a configuração de sites no servidor nginx. 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/php56 sudo mkdir/var/www/php72 

Agora, crie e índice.php contendo o phpinfo () função.

eco "">/var/www/php56/index.php echo "">/var/www/php72/index.php 

Depois disso, crie blocos de servidor para ambos os sites no Nginx. A versão mais recente do Nginx mantém os arquivos de configuração do servidor em/etc/nginx/sites e disponíveis. Crie um arquivo para o primeiro host virtual e edite em seu editor de texto favorito.

sudo vim/etc/nginx/sites-averlable/php56.exemplo.com 

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 5.6.

# Aplicativo com Php 5.6 # servidor Ouça 80; root/var/www/php56; ÍNDICE ÍNDICE.php; server_name php56.exemplo.com; Localização ~* \.php $  # com soquetes php-fpm unix fastcgi_pass unix:/var/run/php/php5.6-fpm.meia; incluir fastcgi_params; fastcgi_param script_filename $ document_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

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

sudo vim/etc/nginx/sites-averlable/php72.exemplo.com 

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

# Aplicativo com Php 7.2 # servidor Ouça 80; root/var/www/php72; ÍNDICE ÍNDICE.php; server_name php72.exemplo.com; Localização ~* \.php $  # com soquetes php-fpm unix fastcgi_pass unix:/var/run/php/php7.2-fpm.meia; incluir fastcgi_params; fastcgi_param script_filename $ document_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

Tudo bem, você criou os dois sites em seu nginx. Mas eles ainda não estão ativos. Nginx mantém sites ativos sob/etc/nignx/sites habilitados para diretório. Você pode simplesmente criar um link simbólico para ambos os arquivos de configuração para este diretório ou usar o comando abaixo para fazer o mesmo.

sudo ln -s/etc/nginx/sites -AVALECLE/PHP56.exemplo.com/etc/nginx/sites-inabled/sudo ln -s/etc/nginx/sites-Available/php72.exemplo.com/etc/nginx/sites habilitados/ 

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

sudo systemctl reiniciar nginx.serviço 

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

Configuração de teste

Tudo feito. Você pode acessar os dois sites do seu navegador Favirote . Você vai ver isso Php56.exemplo.com mostra a versão Php 5.6 e Php72.exemplo.com está mostrando o Php 7.2 como a configuração.

Parabéns, seu sistema está pronto para hospedar sites com diferentes versões PHP. Feliz hospedagem.