Downgrade de php7 en Arch Linux

Si configuras un servidor LAMP en Arch Linux, notarás que éste tiene en sus repositorios las últimas versiones (al momento de escribir este post: php 7.1.2-1).

Es muy probable que si tienes que trabajar con algún sistema que ya tiene sus años, debas recurrir a una versión más antigua de php. Es por eso, que veremos en pocos pasos como hacer un downgrade de php a php 5.6 (teniendo en cuenta que la versión 5.6 de php la encontraremos en AUR,Arch User Repository).

Primero, desinstalar la versión actual de php. Si bien ambos pueden convivir, en este ejemplo decidimos evitar conflictos y eliminamos la versión 7.

$ sudo pacman -R php php-apache

A continuación, deberás instalar una versión anterior. Dado que php56 está disponible en AUR no podremos utilizar pacman, por lo tanto recurrimos a yaourt:

$ yaourt -S php56

Instalado php56 verificamos la versión y el módulo instalado:

$ php56 -v
PHP 5.6.30 (cli) (built: Feb 16 2017 10:44:19) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

$ ls -al /usr/lib/httpd/modules/ | grep libphp
-rwxr-xr-x 1 root root 9963784 Feb 16 10:53 libphp56.so

Luego debemos modificar la configuración del web server (Apache en este ejemplo) para cargar dicho módulo (verificar que comentamos las líneas referidas a php7 y agregamos las referidas a 5)

nano /etc/httpd/conf/httpd.conf
#LoadModule php7_module modules/libphp7.so
LoadModule php5_module modules/libphp56.so
#Include conf/extra/php7_module.conf
Include conf/extra/php56_module.conf
Finalmente, reiniciamos Apache:
systemctrl restart httpd.service
systemctrl status httpd.service
Y finalmente creamos una página para correr la función phpinfo y verificar el resultado final del downgrade corriendo en un browser localhost/test.php:
nano /srv/http/test.php
<?php phpinfo(); ?>

Finalizado esto, el proximo paso debería ser convencer al cliente de actualizar el sistema para soportar php7.

 

Tags: ,


Leave a Reply

Your email address will not be published. Required fields are marked *