Posibilidad de instalar diferentes versiones de PHP en Ubuntu, desde la versión 5.6 (pasando por la 7.4) hasta la 8.1

Hola a todos. Actualmente, en el momento que escribo este post, la versión más reciente de soporte extendido (LTS) de Ubuntu Server es 22.04.1, la cual tiene una versión por defecto de PHP 8.1. A veces, suele darse el caso que algunas aplicaciones web, con plataforma LAMP (Apache, MySQL, PHP), no pueden ejecutarse en la versión PHP 8.1 sino en la 7.4, por poner un ejemplo; entonces, ¿qué hacemos?. Este tutorial, muestra el procedimiento para instalar diferentes versiones de PHP en Ubuntu 22.04.

Lo que haremos es auxiliarnos de la PPA de Ondrej para poder instalar la versión PHP que necesitemos; a continuación, una lista de las versiones que tiene: 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0 y 5.6.

Lo ideal sería utilizar la última versión de PHP, pero es un hecho que a veces hay cambios entre versiones que obligarían a los desarrolladores cambiar el código fuente de la aplicación por alguna incompatibilidad, o sea, porque no funcione; por este motivo, utilizar la versión PHP específica es una alternativa que podemos implementar.

Por cierto, si se quiere saber la versión de PHP instalada, les comparto 2 líneas de comando con la que pueden salir de esa duda:

apt-cache policy php
php --version

Instalar la versión PHP y extensiones que necesitemos

Lo primero, como buena práctica, es actualizar nuestro sistema Ubuntu:

sudo apt update
sudo apt upgrade

Una vez estamos al día con las actualizaciones, vamos agregar la PPA mencionada, ejecutando los siguientes comandos:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php --yes &> /dev/null
sudo apt update

El paquete software-properties-common es necesario si desea instalar software desde PPA.

Ahora que ya tenemos añadido la PPA y tenemos a disposición los paquetes, solo nos bastante con instalar la versión que necesitemos. En el siguiente ejemplo, se instalará la versión 7.4:

sudo apt install php7.4

Si en un dado caso se quisiera instalar otra versión, solo se debe cambiar el número (ejemplo: para la 5.6, sería php5.6).

Para instalar extensiones específicas, solo se le añade la versión de PHP y listo. Un ejemplo, con algunas de las extensiones más comunes (a mi criterio) para la versión 7.4:

sudo apt install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl php7.4-zip php7.4-imap 

Por cierto, para ver los módulos PHP instalados, según versión, ingresamos la siguiente línea de comando (para 7.4):

php7.4 -m

Mencionar que por defecto, el repositorio ondrej, instala varios módulos básicos. Adicional, mencionar que podemos investigar las extensiones de la versión PHP que está en el repositorio, así para saber cuáles podemos instalar:

apt-cache search php7.4-EXTENSION

Configurar la versión predeterminada de PHP

Puede ser el caso que tengamos varias versiones de PHP instaladas, y de ser así, se vuelve una necesidad poder predeterminar una específica, para que trabaje con Apache o en línea de comando.

La siguiente línea de comando, nos lista las diferentes versiones y nos permite seleccionar una para dejarla predeterminada:

sudo update-alternatives --config php

Solo ingresamos el número de la versión que queremos y presionamos ENTER. Otra alternativa es ingresar directamente la línea de comando con la versión que queremos; por ejemplo:

sudo update-alternatives --set php /usr/bin/php7.4

Si deseamos desinstalar una versión de PHP con todo y sus extensiones, lo hacemos de la forma tradicional; por ejemplo (para la versión 5.6):

sudo apt remove php5.6 php5.6-*

Les muestro también la ubicación de los archivos de configuración para el ejemplo de php7.4

  • PHP CLI: /etc/php/7.4/cli/php.ini
  • Apache2: /etc/php/7.4/apache2/php.ini
  • PHP FPM: /etc/php/7.4/fpm/php.ini

Bien, creo que eso sería todo lo que nos puede ser útil sobre este tema. Espero que te haya servidor, eso sería todo. Saludos.

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*