Instalar múltiples versiones de PHP en Ubuntu 22.04 (Jammy Jellyfish)
PHP es un excelente lenguaje de programación que evoluciona constantemente para traernos nuevos features y mejoras. Es por esto, que muchas veces necesitaremos más de una versión instalada en nuestra computadora. La buena noticia es que en Ubuntu podemos intercambiar versiones de PHP fácilmente, el día de hoy veremos cómo hacer esto posible.
Habilitar versiones no soportadas
El primer paso consiste en validar que tenemos las dependencias necesarias. Si ya tienes instalada la versión por defecto, en este caso la 8 no es necesario este paso.
sudo apt-get install software-properties-common
Siguiente a esto debes agregar los repositorios de PHP. Este paso es necesario ya que todas las versiones no se encuentran en los repositorios de las nuevas versiones de Ubuntu.
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
Después de agregar los repos actualizamos nuestra lista de paquetes.
sudo apt-get update -y
Instalar una nueva versión de PHP
Para este ejemplo, vamos a instalar la versión 7.4 de PHP. Sin embargo, tu deberías poder instalar la versión que requieras según tus necesidades.
sudo apt install php7.4
- Instalar extensiones de PHP en Ubuntu
Cambiar entre versiones de PHP
Debes tener en cuenta que después de instalar una nueva versión de PHP esta no quedará automáticamente habilitada. Para cambiar de versión debes ejecutar el siguiente comando:
sudo update-alternatives --config php
Deberás digitar la opción que desees según las versiones que tengas instaladas.
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.1 81 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.1 81 manual mode
Press to keep the current choice[*], or type selection number:
Esto cambiará la versión de PHP que ejecutas por consola. Sin embargo si lo que deseas es cambiar la versión de PHP en Apache deberás dejecutar los siguientes comandos según tus necesidades y versiones instaladas.
sudo a2dismode php8.1
sudo a2enmod php7.4
Después de esto debes reiniciar apache.
sudo apachectl restart