X

Cómo cambiar entre versiones de php en Linux

A la hora de desarrollar, tanto si usas Linux como Windows Subsystem Linux es posible que estés metido en varios proyectos a la vez. Muchas veces son diferentes, y por eso te voy a enseñar cómo cambiar la versión de php en linux y cómo tener varias versiones de php instaladas.

Me vas a decir que por qué no usar directamente la última versión de php en todos tus proyectos. El problema es que a veces, tienes que trabajar en alguno que usa una versión antigua de Windows.

Cómo cambiar la versión activa de PHP en Linux

Antes de nada vas a necesitar saber cómo tener instaladas varias versiones de php para poder cambiar entre ellas. Con la guía que te dejo enlazada verás que es sencillo, además las versiones activas en consola y apache o servidor web son independientes.

De esta forma, puedes estar usando una versión para el servidor web, y otra versión de php para la consola de comandos y tus scripts. Al final se hace bastante útil.

Comando para cambiar la versión de php en linux

La parte buena de todo esto, es que solo vas a necesitar unos comandos para poder desactivar una versión de php, y luego activar la otra. Una vez tengas ya todas las que necesitas instaladas (lo normal es que sean un par, pero puedes tener todas las que quieras a la vez), dependerá de lo que quieras hacer.

Cambiar de php 5.6 a php 7.x

En este caso, y es lo más común, vas a cambiar la versión predeterminada de los paquetes de instalación por la última que vayas a usar en tu proyecto. Empezamos por enlazar todos los comandos de terminal a php7:

sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1

No te olvides de cambiar el 7.1 por la versión exacta que tengas instalada. Luego bastará con hacer lo mismo para el servidor web, en este caso apache

sudo a2dismod php5.6
sudo a2enmod php7.1

De nuevo ten en cuenta la versión inicial de tu php, aunque casi seguro que será esta. No te olvides de reiniciar o recargar la configuración del servidor web para que los cambios tengan efecto.

Cambiar de php 7.x a php 5.6

Lo primero es activar la versión 5.6 en las alternativas. A nivel global estos serían los 3 comandos a ejecutar para estar seguro de que la consola funciona con la otra versión:

sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6

Una vez lo tienes, basta con desactivar el php 7.x y activar el 5.6 en apache

sudo a2dismod php7.1
sudo a2enmod php5.6

A partir de aquí y tras el reinicio del servicio web, verás que el phpinfo ya te ofrece la versión correcta que quieres usar.

Lo bueno de esto, es que no necesitas desinstalar la otra versión, y la puedes volver a activar cuando quieras. Persiste normalmente entre reinicios, pero también es aconsejable si estás en desarrollo que uses un script para cambiar entre versiones, algo así:

#!/bin/bash

PHP_VERSION=$1

if [ "$PHP_VERSION" == "php7.1" ] || [ "$PHP_VERSION" == "7" ]; then
sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1

sudo a2dismod php5.6
sudo a2enmod php7.1

sudo service apache2 restart
sudo service mysql restart
sudo service memcached restart
sudo service ssh restart

elif [ "$PHP_VERSION" == "php5.6" ] || [ "$PHP_VERSION" == "5" ]; then

sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6

sudo a2dismod php7.1
sudo a2enmod php5.6

sudo service apache2 restart
sudo service mysql restart
sudo service memcached restart
sudo service ssh restart
else
echo "usage ./switch-php.sh [php5.6, php7.1]"

fi

guárdalo como switchPHP.sh o clónalo del repositorio de GitHub donde quieras y dale permisos de ejecución con el comando:

https://github.com/vichaunter/Linux-PHP-version-Switcher

chmod +x switchPHP.sh

Puedes usarlo de la siguiente forma:

./switchPHP.sh 7
./switchPHP.sh php7.1
./switchPHP.sh 5
./switchPHP.sh php5.6

Si te fijas detenidamente en la estructura verás que puedes añadir las versiones de php que quieras y darle más funcionalidad. Si lo has mejorado o editado te agradecería dejes los cambios en un comentario y los añado.

Aunque también puedes hacer un aporte directamente en GitHub si lo prefieres. Si te ha dado algún problema o no te funciona puedes decírmelo y te echo un cable.

¿Sueles desarrollar con diferentes versiones de php? ¿Cuales usas? Comenta y comparte

VicHaunter:
    Categorías: Ayuda
Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.