Como instalar PHP 5.6, PHP 7.0, PHP 7.1, PHP 7.2, PHP 7.3 com Nginx no Ubuntu 18.04LTS
Requisitos:
A instalação em paralelo do PHP 5.6, PHP 7.0, PHP 7.1, PHP 7.2 com Nginx é bastante simples, basta seguir os passos abaixo:
$ sudo apt update
$ sudo apt install php5.6 php5.6-fpm
$ sudo apt install php7.0 php7.0-fpm
$ sudo apt install php7.1 php7.1-fpm
$ sudo apt install php7.2 php7.2-fpm
$ sudo apt install php7.3 php7.3-fpm
$ sudo systemctl status php5.6-fpm
$ sudo systemctl status php7.0-fpm
$ sudo systemctl status php7.1-fpm
$ sudo systemctl status php7.2-fpm
$ sudo systemctl status php7.3-fpm
$ sudo mkdir /var/www/php70
$ sudo mkdir /var/www/php71
$ sudo mkdir /var/www/php72
$ sudo mkdir /var/www/php73
O comando abaixo cria arquivos em /var/www/phpXX/index.php e insere o conteúdo <?php phpinfo(); em cada arquivo. Caso não consiga por algum motivo, tente o comando $sudo gedit /var/www/phpXX/index.php:
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php56/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php70/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php71/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php72/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php73/index.php
Cole esta configuração dentro do arquivo:
# PHP 5.6
server {
listen 8056;
root /var/www/php56;
index index.php;
server_name php56.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Cole esta configuração dentro do arquivo:
# PHP 7.0
server {
listen 8070;
root /var/www/php70;
index index.php;
server_name php70.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Cole esta configuração dentro do arquivo:
# PHP 7.1
server {
listen 8071;
root /var/www/php71;
index index.php;
server_name php71.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Cole esta configuração dentro do arquivo:
# PHP 7.2
server {
listen 8072;
root /var/www/php72;
index index.php;
server_name php72.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
$ sudo ln -s /etc/nginx/sites-available/php70.local /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/php71.local /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/php72.local /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx
$ sudo echo "127.0.0.1 php70.local" > /etc/hosts
$ sudo echo "127.0.0.1 php71.local" > /etc/hosts
$ sudo echo "127.0.0.1 php72.local" > /etc/hosts
Observe que neste cenário eu configurei um nome de domínio (local) para cada diferente versão do PHP. Poderiam todas as diferentes versões serem no mesmo domínio (localhost) e separados por diferentes portas (ex: 8056, 8070, 8071, 8072, 8073). Ao mesmo tempo, poderiam todas as diferentes versõs estarem em domínios diferentes (php56.local, php70.local, php71.local, php72.local, php73.local) e utilizando uma mesma porta (80).
Os ajustes e detalhes da configuração ficam a seu critério.
Agradecemos a Ondřej Surý pelo repositório!
- Ubuntu 18.04 LTS
A instalação em paralelo do PHP 5.6, PHP 7.0, PHP 7.1, PHP 7.2 com Nginx é bastante simples, basta seguir os passos abaixo:
Instalando o repositório e as diferentes versões do PHP
$ sudo add-apt-repository ppa:ondrej/php$ sudo apt update
$ sudo apt install php5.6 php5.6-fpm
$ sudo apt install php7.0 php7.0-fpm
$ sudo apt install php7.1 php7.1-fpm
$ sudo apt install php7.2 php7.2-fpm
$ sudo apt install php7.3 php7.3-fpm
$ sudo systemctl status php5.6-fpm
$ sudo systemctl status php7.0-fpm
$ sudo systemctl status php7.1-fpm
$ sudo systemctl status php7.2-fpm
$ sudo systemctl status php7.3-fpm
Instalando o Nginx
$ sudo apt install nginxConfigurando o Nginx com PHP 5.6, PHP 7.0, PHP 7.1, PHP 7.2 e PHP 7.3
$ sudo mkdir /var/www/php56$ sudo mkdir /var/www/php70
$ sudo mkdir /var/www/php71
$ sudo mkdir /var/www/php72
$ sudo mkdir /var/www/php73
O comando abaixo cria arquivos em /var/www/phpXX/index.php e insere o conteúdo <?php phpinfo(); em cada arquivo. Caso não consiga por algum motivo, tente o comando $sudo gedit /var/www/phpXX/index.php:
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php56/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php70/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php71/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php72/index.php
$ sudo echo "<?php phpinfo(); ?>" > /var/www/php73/index.php
Configurando o PHP 5.6 no Nginx
$ sudo nano /etc/nginx/sites-available/php56.localCole esta configuração dentro do arquivo:
# PHP 5.6
server {
listen 8056;
root /var/www/php56;
index index.php;
server_name php56.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Configurando o PHP 7.0 no Nginx
$ sudo nano /etc/nginx/sites-available/php70.localCole esta configuração dentro do arquivo:
# PHP 7.0
server {
listen 8070;
root /var/www/php70;
index index.php;
server_name php70.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Configurando o PHP 7.1 no Nginx
$ sudo nano /etc/nginx/sites-available/php71.localCole esta configuração dentro do arquivo:
# PHP 7.1
server {
listen 8071;
root /var/www/php71;
index index.php;
server_name php71.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Configurando o PHP 7.2 no Nginx
$ sudo nano /etc/nginx/sites-available/php72.localCole esta configuração dentro do arquivo:
# PHP 7.2
server {
listen 8072;
root /var/www/php72;
index index.php;
server_name php72.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Configurando o PHP 7.3 no Nginx
$ sudo nano /etc/nginx/sites-available/php73.local
Cole esta configuração dentro do arquivo:
# PHP 7.3
server {
listen 8073;
root /var/www/php73;
index index.php;
server_name php73.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
server {
listen 8073;
root /var/www/php73;
index index.php;
server_name php73.local;
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Habilitando as configurações (anteriores) no Nginx
$ sudo ln -s /etc/nginx/sites-available/php56.local /etc/nginx/sites-enabled/$ sudo ln -s /etc/nginx/sites-available/php70.local /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/php71.local /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/php72.local /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx
Configurando o hosts com os novos domínios
$ sudo echo "127.0.0.1 php56.local" > /etc/hosts$ sudo echo "127.0.0.1 php70.local" > /etc/hosts
$ sudo echo "127.0.0.1 php71.local" > /etc/hosts
$ sudo echo "127.0.0.1 php72.local" > /etc/hosts
Comentários e notas explicativas
Este cenário permite que você utilize as diferentes versões do PHP informando um nome de domínio (local) e uma porta específica. Por exemplo: para ter acesso ao PHP 5.6, abra o navegador e digite http://php56.local:8056; para ter acesso ao PHP 7.0, abra o navegador e digite http://php70.local:8070; e assim por diante.Observe que neste cenário eu configurei um nome de domínio (local) para cada diferente versão do PHP. Poderiam todas as diferentes versões serem no mesmo domínio (localhost) e separados por diferentes portas (ex: 8056, 8070, 8071, 8072, 8073). Ao mesmo tempo, poderiam todas as diferentes versõs estarem em domínios diferentes (php56.local, php70.local, php71.local, php72.local, php73.local) e utilizando uma mesma porta (80).
Os ajustes e detalhes da configuração ficam a seu critério.
Agradecemos a Ondřej Surý pelo repositório!
Comentários