Explicamos cómo degradar (bajar) la versión de PHP, de la 7 a la 5, en un equipo con sistema operativo Linux CentOS 7. El método es válido para otras distribuciones similares, como Red Hat.

Requisitos para degradar la versión de PHP de la 7 a la 5

En primer lugar, y como es lógico, dispondremos de un servidor con PHP 7 instalado. Para ver la versión actual de PHP podemos ejecutar el siguiente comando linux:

php -ver

Devolverá algo así:

PHP 7.3.2 (cli) (built: Feb 5 2019 13:10:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.2, Copyright (c) 1998-2018 Zend Technologies

Requisitos para degradar la versión de PHP de la 7 a la 5

Y para ver todos los paquetes que tenemos instalados relacionados con PHP podemos ejecutar:

rpm -qa | grem php

Que devolverá:

php-php-gettext-1.0.11-10.el7.noarch
php-json-7.3.2-1.el7.remi.x86_64
php-xml-7.3.2-1.el7.remi.x86_64
php-gd-7.3.2-1.el7.remi.x86_64
php-7.3.2-1.el7.remi.x86_64
php-pecl-mcrypt-1.0.2-2.el7.remi.7.3.x86_64
php-bcmath-7.3.2-1.el7.remi.x86_64
php-pear-1.9.4-21.el7.noarch
php-tcpdf-dejavu-sans-fonts-6.0.098-1.el7.noarch
php-common-7.3.2-1.el7.remi.x86_64
php-pdo-7.3.2-1.el7.remi.x86_64
php-mysqlnd-7.3.2-1.el7.remi.x86_64
php-mbstring-7.3.2-1.el7.remi.x86_64
php-pecl-zip-1.15.4-1.el7.remi.7.3.x86_64
phpMyAdmin-4.4.15.10-3.el7.noarch
php-xmlrpc-7.3.2-1.el7.remi.x86_64
php-process-7.3.2-1.el7.remi.x86_64
php-snmp-7.3.2-1.el7.remi.x86_64
php-soap-7.3.2-1.el7.remi.x86_64
php-tcpdf-6.0.098-1.el7.noarch
php-cli-7.3.2-1.el7.remi.x86_64
php-tidy-7.3.2-1.el7.remi.x86_64
php-odbc-7.3.2-1.el7.remi.x86_64
php-ldap-7.3.2-1.el7.remi.x86_64

Requisitos para degradar la versión de PHP de la 7 a la 5

Conviene tener instalados los repositorios EPEL Repository y Remi Repository, que pueden instalarse con los comandos:

yum install epel-release

y

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Degradar o bajar o downgrade versión de PHP 7 a la 5 en Linux CentOS 7

En primer lugar desinstalaremos todos los paquetes de PHP instalados actualmente, para ello ejecutaremos el comando:

yum remove «php-*» -y

Degradar o bajar o downgrade versión de PHP 7 a la 5 en Linux CentOS 7

Instalaremos PHP 5.6, en el comando desactivaremos el repositorio de PHP 7 para que no lo instale y activamos PHP 5.6:

yum –disablerepo=remi-php73 –enablerepo=remi-php56 install php php-gd php-mbstring php-mysql php-curl php-mcrypt php-ldap

Degradar o bajar o downgrade versión de PHP 7 a la 5 en Linux CentOS 7

Es posible que nos solicite confirmación para la descarga e instalación de los paquetes, responderemos «y» e INTRO.

Verificar que se ha instalado PHP 5.6 y que funciona correctamente el servidor web con Apache y PHP

Una vez finalizado el proceso, nos mostrará ¡Listo!. Ahora comprobaremos que, efectivamente, tenemos instalado PHP 5.6, para ello ejecutaremos el comando:

php -ver

Devolviendo:

PHP 5.6.40 (cli) (built: Aug 28 2019 15:03:50)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Verificar que se ha instalado PHP 5.6 y que funciona correctamente el servidor web con Apache y PHP

Si teníamos el servidor web iniciado con Apache reiniciaremos el servicio para que aplique los cambios de PHP 7 al 5:

systemctl restart httpd

Para verificar que el servidor web Apache carga bien los módulos de PHP 5.6 podremos añadir a /var/www/html un fichero con el nombre info_php.php:

cd /var/www/html

nano info_php.php

Verificar que se ha instalado PHP 5.6 y que funciona correctamente el servidor web con Apache y PHP

Suponiendo que el sitio web del servidor web tiene establecida como su raíz la carpeta /var/www/html, en caso contrario la cambiaremos por la correspondiente.

Añadiremos el siguiente contenido al fichero:

Verificar que se ha instalado PHP 5.6 y que funciona correctamente el servidor web con Apache y PHP

Si todo es correcto, desde un navegador, nos mostrará la siguiente ventana:

Verificar que se ha instalado PHP 5.6 y que funciona correctamente el servidor web con Apache y PHP

Anexo

Resultado de la ejecución del comando: yum remove «php-*» -y

# yum remove «php-*» -y
Complementos cargados:fastestmirror
Resolviendo dependencias
–> Ejecutando prueba de transacción
—> Paquete php.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-bcmath.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-cli.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-common.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
–> Procesando dependencias: php(language) >= 5.3.7 para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-bz2 para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-ctype para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-curl para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-date para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-filter para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-iconv para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-libxml para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-openssl para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-pcre para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-session para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-spl para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
–> Procesando dependencias: php-zlib para el paquete: phpMyAdmin-4.4.15.10-3.el7.noarch
—> Paquete php-gd.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-json.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-ldap.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-mbstring.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-mysqlnd.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-odbc.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-pdo.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-pear.noarch 1:1.9.4-21.el7 debe ser eliminado
—> Paquete php-pecl-mcrypt.x86_64 0:1.0.2-2.el7.remi.7.3 debe ser eliminado
—> Paquete php-pecl-zip.x86_64 0:1.15.4-1.el7.remi.7.3 debe ser eliminado
—> Paquete php-php-gettext.noarch 0:1.0.11-10.el7 debe ser eliminado
—> Paquete php-process.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-snmp.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-soap.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-tcpdf.noarch 0:6.0.098-1.el7 debe ser eliminado
—> Paquete php-tcpdf-dejavu-sans-fonts.noarch 0:6.0.098-1.el7 debe ser eliminado
—> Paquete php-tidy.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-xml.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
—> Paquete php-xmlrpc.x86_64 0:7.3.2-1.el7.remi debe ser eliminado
–> Ejecutando prueba de transacción
—> Paquete phpMyAdmin.noarch 0:4.4.15.10-3.el7 debe ser eliminado
–> Resolución de dependencias finalizada
Resumen de la transacción
Eliminar 23 Paquetes (+1 Paquete dependiente)
Tamaño instalado: 83 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Eliminando : phpMyAdmin-4.4.15.10-3.el7.noarch
advertencia:/etc/phpMyAdmin/config.inc.php guardado como /etc/phpMyAdmin/config.inc.php.rpmsave
advertencia:/etc/httpd/conf.d/phpMyAdmin.conf guardado como /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave
php.x86_64 0:7.3.2-1.el7.remi php-bcmath.x86_64 0:7.3.2-1.el7.remi
php-cli.x86_64 0:7.3.2-1.el7.remi php-common.x86_64 0:7.3.2-1.el7.remi
php-gd.x86_64 0:7.3.2-1.el7.remi php-json.x86_64 0:7.3.2-1.el7.remi
php-ldap.x86_64 0:7.3.2-1.el7.remi php-mbstring.x86_64 0:7.3.2-1.el7.remi
php-mysqlnd.x86_64 0:7.3.2-1.el7.remi php-odbc.x86_64 0:7.3.2-1.el7.remi
php-pdo.x86_64 0:7.3.2-1.el7.remi php-pear.noarch 1:1.9.4-21.el7
php-pecl-mcrypt.x86_64 0:1.0.2-2.el7.remi.7.3 php-pecl-zip.x86_64 0:1.15.4-1.el7.remi.7.3
php-php-gettext.noarch 0:1.0.11-10.el7 php-process.x86_64 0:7.3.2-1.el7.remi
php-snmp.x86_64 0:7.3.2-1.el7.remi php-soap.x86_64 0:7.3.2-1.el7.remi
php-tcpdf.noarch 0:6.0.098-1.el7 php-tcpdf-dejavu-sans-fonts.noarch 0:6.0.098-1.el7
php-tidy.x86_64 0:7.3.2-1.el7.remi php-xml.x86_64 0:7.3.2-1.el7.remi
php-xmlrpc.x86_64 0:7.3.2-1.el7.remi
Dependencia(s) eliminada(s):
phpMyAdmin.noarch 0:4.4.15.10-3.el7
¡Listo!

Resultado de la ejecución del comando: yum –disablerepo=remi-php73 –enablerepo=remi-php56 install php php-gd php-mbstring php-mysql php-curl php-mcrypt php-ldap

# yum –disablerepo=remi-php73 –enablerepo=remi-php56 install php php-gd php-mbstring php-mysql php-curl php-mcrypt php-ldap
Complementos cargados:fastestmirror
Loading mirror speeds from cached hostfile
base: mirror.gadix.com
epel: mirror.logol.ru
extras: mirror.gadix.com
remi-php56: remi.xpg.com.br
remi-safe: remi.xpg.com.br
rpmforge: mirror.awanti.com
updates: ftp.uma.es
El paquete php-mysql se hace obsoleto con php-mysqlnd, en su lugar se está intentando instalar php-mysqlnd-5.6.40-13.el7.remi.x86_64
Resolviendo dependencias
–> Ejecutando prueba de transacción
—> Paquete php.x86_64 0:5.6.40-13.el7.remi debe ser instalado
–> Procesando dependencias: php-cli(x86-64) = 5.6.40-13.el7.remi para el paquete: php-5.6.40-13.el7.remi.x86_64
—> Paquete php-common.x86_64 0:5.6.40-13.el7.remi debe ser instalado
–> Procesando dependencias: php-pecl-jsonc(x86-64) para el paquete: php-common-5.6.40-13.el7.remi.x86_64
–> Procesando dependencias: php-pecl-zip(x86-64) para el paquete: php-common-5.6.40-13.el7.remi.x86_64
—> Paquete php-gd.x86_64 0:5.6.40-13.el7.remi debe ser instalado
—> Paquete php-ldap.x86_64 0:5.6.40-13.el7.remi debe ser instalado
—> Paquete php-mbstring.x86_64 0:5.6.40-13.el7.remi debe ser instalado
—> Paquete php-mcrypt.x86_64 0:5.6.40-13.el7.remi debe ser instalado
—> Paquete php-mysqlnd.x86_64 0:5.6.40-13.el7.remi debe ser instalado
–> Procesando dependencias: php-pdo(x86-64) = 5.6.40-13.el7.remi para el paquete: php-mysqlnd-5.6.40-13.el7.remi.x86_64
–> Ejecutando prueba de transacción
—> Paquete php-cli.x86_64 0:5.6.40-13.el7.remi debe ser instalado
—> Paquete php-pdo.x86_64 0:5.6.40-13.el7.remi debe ser instalado
—> Paquete php-pecl-jsonc.x86_64 0:1.3.10-2.el7.remi.5.6 debe ser instalado
—> Paquete php-pecl-zip.x86_64 0:1.15.5-1.el7.remi.5.6 debe ser instalado
–> Procesando dependencias: libzip5(x86-64) >= 1.5.2 para el paquete: php-pecl-zip-1.15.5-1.el7.remi.5.6.x86_64
–> Ejecutando prueba de transacción
—> Paquete libzip5.x86_64 0:1.5.1-1.el7.remi debe ser actualizado
—> Paquete libzip5.x86_64 0:1.5.2-1.el7.remi debe ser una actualización
–> Resolución de dependencias finalizada
Resumen de la transacción
Instalar 7 Paquetes (+4 Paquetes dependientes)
Actualizar ( 1 Paquete dependiente)
Tamaño total de la descarga: 9.1 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Actualizando : libzip5-1.5.2-1.el7.remi.x86_64 Instalando : php-pecl-jsonc-1.3.10-2.el7.remi.5.6.x86_64
Instalando : php-common-5.6.40-13.el7.remi.x86_64
Instalando : php-pecl-zip-1.15.5-1.el7.remi.5.6.x86_64
Instalando : php-pdo-5.6.40-13.el7.remi.x86_64
Instalando : php-cli-5.6.40-13.el7.remi.x86_64
Instalando : php-5.6.40-13.el7.remi.x86_64
Instalando : php-mysqlnd-5.6.40-13.el7.remi.x86_64
Instalando : php-mbstring-5.6.40-13.el7.remi.x86_64
Instalando : php-gd-5.6.40-13.el7.remi.x86_64
Instalando : php-mcrypt-5.6.40-13.el7.remi.x86_64
Instalando : php-ldap-5.6.40-13.el7.remi.x86_64
Limpieza : libzip5-1.5.1-1.el7.remi.x86_64
WARNING : PHP 5.6 have reached its «End of Life» in
January 2019. Even, if this package includes some of
the important security fix, backported from 7.1, the
UPGRADE to a maintained version is very strongly RECOMMENDED.
Comprobando : php-mbstring-5.6.40-13.el7.remi.x86_64
Comprobando : php-pdo-5.6.40-13.el7.remi.x86_64
Comprobando : php-gd-5.6.40-13.el7.remi.x86_64
Comprobando : php-mysqlnd-5.6.40-13.el7.remi.x86_64
Comprobando : php-cli-5.6.40-13.el7.remi.x86_64
Comprobando : php-mcrypt-5.6.40-13.el7.remi.x86_64
Comprobando : libzip5-1.5.2-1.el7.remi.x86_64
Comprobando : php-common-5.6.40-13.el7.remi.x86_64
Comprobando : php-ldap-5.6.40-13.el7.remi.x86_64
Comprobando : php-5.6.40-13.el7.remi.x86_64
Comprobando : php-pecl-jsonc-1.3.10-2.el7.remi.5.6.x86_64
Comprobando : php-pecl-zip-1.15.5-1.el7.remi.5.6.x86_64
Comprobando : libzip5-1.5.1-1.el7.remi.x86_64
Instalado:
php.x86_64 0:5.6.40-13.el7.remi php-common.x86_64 0:5.6.40-13.el7.remi php-gd.x86_64 0:5.6.40-13.el7.remi php-ldap.x86_64 0:5.6.40-13.el7.remi php-mbstring.x86_64 0:5.6.40-13.el7.remi php-mcrypt.x86_64 0:5.6.40-13.el7.remi
php-mysqlnd.x86_64 0:5.6.40-13.el7.remi
Dependencia(s) instalada(s):
php-cli.x86_64 0:5.6.40-13.el7.remi php-pdo.x86_64 0:5.6.40-13.el7.remi php-pecl-jsonc.x86_64 0:1.3.10-2.el7.remi.5.6 php-pecl-zip.x86_64 0:1.15.5-1.el7.remi.5.6
Dependencia(s) actualizada(s):
libzip5.x86_64 0:1.5.2-1.el7.remi
¡Listo!