Cambiar versión de PHP 7.0 a PHP 5.6 en Ubuntu 16.04

phpHola a tod@s!

Cuando se instala la plataforma LAMP o simplemente el apache + php en Ubuntu 16.04, éste por defecto instala la versión de PHP 7.0 dado que es lo más actual y estable en PHP, pero ésta versión tiene tantos cambios comparados con sus versiones anteriores que prácticamente muchas aplicaciones realizadas en versión 5.6 para abajo no se pueden ejecutar correctamente… Implicaría (la mejor práctica), adaptar el código de estos sistemas a los cambios realizados en versión 7.0, lo cual es correcto dado que los cambios no son por gusto, o sea, siempre es por cuestiones de seguridad, buenas prácticas, etc. PERO da la casualidad que no siempre se tiene el tiempo o la persona calificada para realizar los cambios… es por ésta razón que veo necesario poder hacer un «downgrade» de PHP, y la versión más compatible con casi todo a éstas alturas del 2016 creo que es la 5.6, y es por esto que nace ésta entrada.

Éste procedimiento NO pretende eliminar PHP 7.0, si no permitir que convivan las dos versiones pero mantener activa una de ellas.

¿Cómo se hace? Ok, primero mencionarles que esto lo obtuve de Internet, no es algo que lo deduje yo mismo… pero bueno, queda aquí como bitácora. Se recomienda desactivar el módulo proxy_fcgi dado que puede dar problemas en el cambio a php 5.6 (no siempre, pero es mejor prevenir).

sudo a2dismod proxy_fcgi proxy
sudo service apache2 restart

Ahora procederemos a instalar PHP 5.6 mediante la adición de un repositorio de terceros.

$sudo add-apt-repository ppa:ondrej/php
$sudo apt update
$sudo apt install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Ok, ya tenemos todo listo, solo nos falta hacer el cambio de versión activa. En éste caso, se colocarán las líneas de comando para realizar el cambio según les convenga:

De php5.6 a php7.0

Ejecutar las siguientes líneas de comando:

sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
sudo update-alternatives –set php /usr/bin/php7.0

(El set con dos guiones).

 

De php7.0 a php5.6:

Ejecutar las siguientes líneas de comando:

sudo a2dismod php7.0
sudo a2enmod php5.6
sudo service apache2 restart
sudo update-alternatives –set php /usr/bin/php5.6

(Ese set con dos guiones) Ahora verificamos que tenemos la versión de PHP correcta ejecutando lo siguiente:

php -v

Tendría que aparecer lo siguiente (si lo que buscamos es tener PHP 5.6)

01

Si quieren ver más detalles de la versión, nos vamos por el viejo conocido… creamos un archivo .php en /var/www/html con el siguiente contenido:

<?php phpinfo(); ?>

Y al verlo en el navegador, nos mostrará la información detallada de nuestro PHP.

02

Un dato interesante es, ¿Cómo instalar más paquetes de PHP en la versión 5.6? Al escribir el nombre del paquete debemos de hacer referencia a la versión específica a la que se lo queremos aplicar. Ejemplo:

sudo apt install php5.6-sybase php5.6-gd php5.6-curl php5.6-imap php5.6-ldap

Bien, eso es todo! Saludos!

 

Comentarios por Facebook

comentarios

7 respuestas a “Cambiar versión de PHP 7.0 a PHP 5.6 en Ubuntu 16.04”

  1. Hola,

    Muy buena información, nomas te menciono que me encontré con un error en un comando:

    – update-alternatives –set php /usr/bin/php5.6

    Solucionado con:
    – sudo update-alternatives –set php /usr/bin/php5.6 o php7.0 (iban dos guiones)

    Saludos.

  2. buenas cuando ejecuto el comando php -v me dice que estoy en la version 5.6, pero cuando ejecuto el archivo php para que me de mas info me dice que esta en la 7.0 :/

  3. Saludos estoy o quiero trabajar ocn un WEBSERVER en ubuntu 16.04 y scriptcase, pero el me da error cuando me quiero conectar al MSSQL, desde Windows no tengo problemas instale el WAMP y Scriptcase en Windows y alli tengo el WEBSERVER pero en linux no me funciona, como si faltara alguna libreria, hice todo lo que pones aqui y se instalo correctamente la versionde scriptcase es la 8.1

Deja un comentario

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

*