Este breve tutorial lo guía a través de los pasos para cambiar entre varias versiones de PHP en Ubuntu Linux y sus derivados. Esta guía se prueba oficialmente en la edición del servidor Ubuntu 18.04 LTS. También puede funcionar en otras versiones antiguas o nuevas de Ubuntu.
Introducción
A veces, es posible que la versión más reciente de un paquete instalado no funcione como esperaba. Es posible que su aplicación no sea compatible con el paquete actualizado y solo admita una versión anterior específica del paquete.
En tales casos, simplemente puede degradar el paquete problemático a su versión de trabajo anterior en poco tiempo. Consulte nuestras guías antiguas sobre cómo degradar un paquete en Ubuntu y sus variantes aquí y cómo degradar un paquete en Arch Linux y sus derivados aquí .
En algunas situaciones, no necesita degradar los paquetes problemáticos. En Linux, podemos usar varias versiones del mismo paquete al mismo tiempo, una al lado de la otra.
Por ejemplo, supongamos que está probando una aplicación PHP en pila LAMP implementado en Ubuntu 18.04 LTS. Después de un tiempo, descubre que la aplicación funcionó bien en PHP 5.6, pero no en PHP 7.2 (Ubuntu 18.04 LTS instala PHP 7.x de manera predeterminada).
¿Vas a reinstalar PHP o toda la pila LAMP nuevamente? No es necesario.
Ni siquiera tiene que degradar el PHP a su versión anterior. Simplemente puede cambiar a la versión anterior de PHP en funcionamiento en un par de minutos.
1. Cambiar entre varias versiones de PHP
Verifiquemos la versión instalada predeterminada de PHP usando el comando:
$ php -v
Salida de muestra:
PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
Como puede ver, la versión instalada de PHP es 7.2.7.
Después de probar su aplicación durante un par de días, descubre que su aplicación no es compatible con PHP 7.2. En ese caso, es una buena idea tener tanto la versión PHP 5.x como la versión PHP 7.x, para que pueda cambiar fácilmente entre cualquier versión compatible en cualquier momento.
No necesita eliminar PHP 7.x o reinstalar la pila LAMP. Puede usar ambas versiones de PHP 5.x y 7.x juntas.
Supongo que aún no desinstaló php 5.6 en su sistema. Por si acaso, ya lo eliminó, puede instalarlo nuevamente usando un PPA como se muestra a continuación.
Puede instalar PHP 5.6 desde un PPA:
$ sudo add-apt-repository -y ppa:ondrej/php $ sudo apt update $ sudo apt install php5.6
1.1. Cambiar de PHP 7.x a PHP 5.x
$ sudo a2dismod php7.2
Salida de muestra:
Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2
$ sudo a2enmod php5.6
$ sudo update-alternatives --set php /usr/bin/php5.6
$ sudo update-alternatives --config php
$ sudo update-alternatives --set phar /usr/bin/phar5.6
$ sudo systemctl restart apache2
Ahora, compruebe si PHP 5.6 es la versión predeterminada o no:
$ php -v
Salida de muestra:
PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
2. Cambiar de PHP 5.x a PHP 7.x
Del mismo modo, puede cambiar de la versión PHP 5.x a PHP 7.x ejecutando los siguientes comandos uno tras otro.
$ sudo a2enmod php7.2
$ sudo a2dismod php5.6
$ sudo update-alternatives --set php /usr/bin/php7.2
$ sudo systemctl restart apache2
Una advertencia:
La última versión estable de PHP 5.6 ha llegado al fin del soporte activo a partir del 19 de enero de 2017. Sin embargo, PHP 5.6 continuará recibiendo soporte para problemas críticos de seguridad hasta el 31 de diciembre de 2018. Por lo tanto, se recomienda actualizar todas sus aplicaciones PHP para que sean compatibles con PHP 7 .x lo antes posible.
Si desea evitar que PHP se actualice automáticamente en el futuro, consulte la siguiente guía.
- Cómo evitar que un paquete se instale, actualice o elimine automáticamente en Ubuntu
Y, eso es todo por ahora. Espero que esto ayude.