Si ets administrador de sistemes o de servidors web, és important que sàpigues com instal·lar i utilitzar diverses versions de PHP en un sol servidor. Això és molt útil quan tens diverses aplicacions PHP al servidor i cada aplicació és compatible amb les diferents versions de PHP. En aquest cas, pots configurar Nginx per definir la versió de PHP desitjada.
En aquest article, t'expliquem com instal·lar PHP 7.2, 7.4 i 8.0 a Ubuntu 20.04.
Requisits
- Un servidor al núvol que executi Ubuntu 20.04.
- Una contrasenya root configurada al servidor.
Afegeix un repositori PHP
Per defecte, Ubuntu 20.04 inclou la versió 7.4 de PHP. Per tant, hauràs d'afegir el repositori de PHP al sistema per instal·lar les múltiples versions de PHP.
Primer, instal·la les dependències necessàries amb l'ordre següent:
# apt-get install software-properties-common gnupg2 -y Un cop instal·lades totes les dependències, afegeix el repositori PHP amb l'ordre següent:
# add-apt-repository ppa:ondrej/php A continuació, actualitza el repositori amb l'ordre següent:
# apt-get update -y Un cop actualitzat el repositori, ja pots procedir a instal·lar múltiples versions de PHP.
Instal·la múltiples versions de PHP (7.2, 7.4 i 8.0)
Per instal·lar la versió PHP 7.2 amb suport PHP-FPM, fes-ho amb l'ordre següent:
# apt-get install php7.2 php7.2-fpm php7.2-cli -yPer instal·lar la versió PHP 7.4 amb suport PHP-FPM, fes-ho amb l'ordre següent:
# apt-get install php7.4 php7.4-fpm php7.4-cli -yPer instal·lar la versió PHP 8.0 amb suport PHP-FPM, fes-ho amb l'ordre següent:
# apt-get install php8.0 php8.0-fpm php8.0-cli -yAra ja tens totes les versions de PHP instal·lades al sistema.
Estableix la versió de PHP per defecte per a la línia d'ordres
Primer, comprova la versió actual de PHP de la línia d'ordres amb l'ordre següent:
# php --version Hauries d'obtenir el resultat següent:
PHP 8.0.5 (cli) (built: May 3 2021 11:30:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.5, Copyright (c) Zend Technologies
with Zend OPcache v8.0.5, Copyright (c), by Zend Technologies
Com pots veure, la versió de PHP 8.0 és la versió per defecte a la línia d'ordres.
Ara, estableix la versió 7.4 com a versió de PHP per defecte de la línia d'ordres amb l'ordre següent:
# update-alternatives --config php Et demanarà que estableixis la versió de PHP per defecte tal com es mostra més avall:
There are 3 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.2 72 manual mode
2 /usr/bin/php7.4 74 manual mode
3 /usr/bin/php8.0 80 manual mode
Press "enter" to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/php7.4 to provide /usr/bin/php (php) in manual mode
Selecciona la versió de PHP que vulguis i prem "Enter" per establir-la com a versió per defecte.
A continuació, verifica la versió de PHP per defecte amb l'ordre següent:
# php --versionHauries d'obtenir el resultat següent:
PHP 7.4.18 (cli) (built: May 3 2021 11:27:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.18, Copyright (c), by Zend TechnologiesCanvia entre les múltiples versions de PHP amb Nginx
Pots canviar fàcilment entre múltiples versions de PHP configurant l'amfitrió virtual Nginx i PHP-FPM.
Primer, instal·la el paquet del servidor Nginx amb l'ordre següent:
# apt-get install nginx -yPrimer, hauràs de comprovar quina versió de PHP està utilitzant el servidor Nginx.
Per fer-ho, crea un fitxer info.php al directori arrel web de Nginx:
# nano /var/www/html/info.phpAfegeix la línia següent:
<?php phpinfo(); ?>Desa i tanca el fitxer quan hagis acabat.
Per utilitzar la versió 7.2 de PHP al servidor Nginx, has d'editar l'amfitrió virtual del fitxer de configuració per defecte tal com es mostra més avall:
# nano /etc/nginx/sites-enabled/defaultElimina totes les línies i afegeix les línies següents:
server { # php/fastcgi
listen 80;
server_name _;
root /var/www/html/;
index info.php;
access_log /var/log/nginx/access_log;
error_log /var/log/nginx/error_log;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}Desa i tanca el fitxer i, després, comprova si hi ha errors de sintaxi a Nginx amb l'ordre següent:
# nginx -tHauries d'obtenir el resultat següent:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuació, reinicia Nginx per aplicar els canvis:
# systemctl restart nginxAra obre el navegador web i accedeix a la pàgina info.php amb l'URL http://your-server-ip. Hauries de veure la versió de PHP utilitzada pel servidor Nginx a la imatge següent:
Per utilitzar la versió 7.4 de PHP al servidor Nginx, edita l'amfitrió virtual del fitxer de configuració per defecte tal com es mostra més avall:
# nano /etc/nginx/sites-enabled/defaultCerca la línia següent:
fastcgi_pass unix:/run/php/php7.2-fpm.sock;I substitueix-la per la línia següent:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;Desa i tanca el fitxer i, després, reinicia Nginx per aplicar els canvis:
# systemctl restart nginxAra obre el navegador web i accedeix a la pàgina info.php amb l'URL http://your-server-ip. Hauries de veure la versió de PHP utilitzada pel servidor Nginx a la pantalla següent:
Conclusió
Amb aquest tutorial, has après a gestionar múltiples versions de PHP a Ubuntu 20.04. Esperem que t'ajudi a allotjar múltiples aplicacions web amb diferents versions de PHP!