Varias versiones php en tu servidor

Esto de las versiones del php me ha traído de cabeza desde que decidieron que algunas versiones iban a ser incompatibles con otras… Tan traumático fue el cambio a php5 que la comunidad ha tardado muchos años en decidirse a utilizar otra versión, tanto que se han saltado un número y ahora vivimos con la versión 7.x. En este caso os dejo la receta para poder cambiar de una versión a otra de php en un servidor ubuntu y así poder probar si algo funciona con la versión más nueva o hay que seguir «pegado a la versión anterior».

Yo me he creado dos archivos para hacerlo: 

switchTo5.6.sh

!/bin/bash
a2dismod php7.2
a2enmod php5.6
update-alternatives --set php /usr/bin/php5.6
update-alternatives --set phar /usr/bin/phar5.6
update-alternatives --set phar.phar /usr/bin/phar.phar5.6 
update-alternatives --set phpize /usr/bin/phpize5.6
update-alternatives --set php-config /usr/bin/php-config5.6
service apache2 restart

switchTo7.2.sh

#!/bin/bash
a2dismod php5.6
a2enmod php7.2
update-alternatives --set php /usr/bin/php7.2
update-alternatives --set phar /usr/bin/phar7.2
update-alternatives --set phar.phar /usr/bin/phar.phar7.2 
update-alternatives --set phpize /usr/bin/phpize7.2
update-alternatives --set php-config /usr/bin/php-config7.2
service apache2 restart

Recordad que para que todo funcione habéis tenido que incluir los repositorios que tengan las distintas versiones de php. En mi caso incluí este:

sudo add-apt-repository ppa:ondrej/php

Y que tenéis que instalar todas las dependencias del proyecto en cuestión. En mi caso fueron estas (es un proyecto LAMP):

sudo apt-get install -y apache2 libapache2-mpm-itksudo apt-get install php php-mysql php-curl php-gd php-intl php-pear php-imagick php-imap php-memcache php-pspell php-recode php-tidy php-xmlrpc php7.2-xml  php-mbstring libapache2-mod-php

No es la solución ideal pero permite cambiar a una versión más «segura» en cualquier momento y asegurar que los proyectos siguen funcionando al margen de la versión actual de php.

En cualquier caso, seguro que surgen más problemas con el versionado de las librerías, ahí ya no queda más que rezar y esperar que todo siga funcionando «más o menos» como antes.