Si es administrador de sistemas o de servidores web, es importante que sepas cómo instalar y utilizar varias versiones de PHP en un solo servidor. Esto es muy útil cuando tienes varias aplicaciones PHP en tu servidor y cada aplicación es compatible con las diferentes versiones de PHP. En este caso, puedes configurar Nginx para definir la versión de PHP deseada.
En este artículo, te explicamos cómo instalar PHP 7.2, 7.4 y 8.0 en Ubuntu 20.04.
Requisitos
- Un servidor cloud corriendo con Ubuntu 20.04.
- Una contraseña root configurada en el servidor.
Añade un Repositorio PHP
Por defecto, Ubuntu 20.04 viene con la versión 7.4 de PHP. Por lo tanto, deberás agregar el repositorio de PHP en tu sistema para instalar las múltiples versiones de PHP.
Primero, instala las dependencias requeridas con el siguiente comando:
# apt-get install software-properties-common gnupg2 -y
Una vez que todas las dependencias estén instaladas, añade el repositorio PHP con el siguiente comando:
# add-apt-repository ppa:ondrej/php
A continuación, actualiza el repositorio con el siguiente comando:
# apt-get update -y
Uba vez que el repositorio esté actualizado, ya puedes proceder a instalar múltiples versiones de PHP.
Instala múltiples versiones de PHP (7.2, 7.4 and 8.0)
Para instalar la versión PHP 7.2 con soporte PHP-FPM, hazlo con el siguiente comando:
# apt-get install php7.2 php7.2-fpm php7.2-cli -y
Para instalar la versión PHP 7.4 con soporte PHP-FPM, hazlo con el siguiente comando:
# apt-get install php7.4 php7.4-fpm php7.4-cli -y
Para instalar la versión PHP 8.0 con soporte PHP-FPM, hazlo con el siguiente comando:
# apt-get install php8.0 php8.0-fpm php8.0-cli -y
Ahora ya tienes todas las versiones de PHP instaladas en tu sistema.
Establece la versión de PHP por defecto para la Línea de Comandos
Primero, comprueba la versión actual de línea de comandos de PHP con el siguiente comando:
# php --version
Deberías obtener el siguiente resultado:
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
Como puedes ver, la versión de PHP 8.0 es la versión por defecto en la línea de comandos:
Ahora, establece como versión por defecto de PHP de la línea de comandos la versión 7.4 con el siguiente comando:
# update-alternatives --config php
Te pedirá que establezcas la versión de PHP por defecto como se muestra más abajo:
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ón de PHP que desees y presiona "Enter" para establecerla como la versión por defecto.
A continuación, verifica la versión de PHP por defecto usando el siguiente comando:
# php --version
Deberías obtener el siguiente resultado:
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 Technologies
Cambia entre las múltiples versiones de PHP con Nginx
Puedes cambiar entre múltiples versiones de PHP fácilmente configurando el host virtual Nginx y PHP-FPM.
Primero, instala el paquete del servidor Nginx con el siguiente comando:
# apt-get install nginx -y
Primero, tendrás que comprobar cuál es la versión de PHP que está usando tu servidor Nginx.
Para ello, crea un archivo info.php en tu directorio web root de Nginx:
# nano /var/www/html/info.php
Añade la siguiente línea:
<?php phpinfo(); ?>
Guarda y cierra el archivo cuando hayas terminado.
Para usar la versión 7.2 de PHP en el servidor de Nginx, tienes que editar el virtual host del archivo de configuración por defecto como se muestra más abajo:
# nano /etc/nginx/sites-enabled/default
Elimina todas las líneas y añade las siguientes líneas:
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;
}
}
Guarda y cierra el archivo, después verifica Nginx en relación a algún error de sintaxis con el siguiente comando:
# nginx -t
Deberías obtener el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicia Nginx para aplicar los cambios:
# systemctl restart nginx
Ahora abre tu navegador web y accede a la página info.php con la URL http://your-server-ip. Deberías ver la versión de PHP utilizada por el servidor de Nginx en la siguiente imagen:
Para utilizar la versión 7.4 de PHP en el servidor Nginx, edita el virtual host del archivo de configuración por defecto como se muestra más abajo:
# nano /etc/nginx/sites-enabled/default
Busca la siguiente línea:
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
Y reemplázala por la siguiente línea:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
Guarda y cierra el archivo y después reinicia Nginx para aplicar los cambios:
# systemctl restart nginx
Ahora abre tu navegador web y accede a la página info.php con la URL http://your-server-ip. Deberías ver la versión de PHP utilizada por el servidor de Nginx en la siguiente pantalla:
Conclusión
Con este tutorial, has aprendido a manejar múltiples versiones de PHP en Ubuntu 20.04. ¡Esperamos que te ayude a alojar múltiples aplicaciones web con diferentes versiones de PHP!