Supongamos que tenemos un servidor Web LAMP (típicamente Linux+Apache+PHP+MySQL/MariaDB) con Apache y diferentes versiones de PHP instaladas y necesitamos cambiar la versión de PHP en uso por Apache (por ejemplo necesitamos pasar de PHP 5.6 a PHP 7.0). Este artículo explica los simples pasos para llevar a cabo esta tarea.



El servidor en cuestión cuenta con los módulos de Apache para las versiones de PHP 5.6 y 7.0 desde paquete:

root@devuan:~# apt-cache search libapache2-mod-php
libapache2-mod-php - server-side, HTML-embedded scripting language (Apache 2 module) (default)
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module)

Ambos se encuentran actualmente instalados:

root@devuan:~# dpkg -l | grep libapache2-mod-php
ii  libapache2-mod-php5                    5.6.40+dfsg-0+deb8u4               amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.0                  7.0.33-0+deb9u3                    amd64        server-side, HTML-embedded scripting language (Apache 2 module)

El primer paso consiste en verificar qué módulos de Apache están cargados, particularmente qué módulo de PHP está cargado:

root@devuan:~# apache2ctl -t -D DUMP_MODULES | grep php
 php5_module (shared)

Se observa que el servidor Apache utiliza PHP 5.6 y se desea cambiar a 7.0.

Verificar qué módulos de PHP se encuentran disponibles para utilizar:

root@devuan:~# ll /usr/lib/apache2/modules/ | grep php
-rw-r--r-- 1 root root 9926688 Jun  3 09:57 libphp5.so
-rw-r--r-- 1 root root 4307304 Mar  8 10:01 libphp7.0.so

Como era de esperarse, ambos módulos se encuentran disponibles. De lo contrario es posible instalar el módulo de Apache para la versión 7.0 de PHP ejecutando: apt-get install libapache2-mod-php7.0.

Cabe destacar que sólo es posible cargar una versión de módulo de PHP en todo momento- En este caso se deberá optar por 5.6 o 7.0.

Comenzar deshabilitando el módulo "php5":

root@devuan:~# a2dismod php5
Module php5 disabled.
To activate the new configuration, you need to run:
  service apache2 restart

Luego habilitar el módulo "php7.0" (o "php7.1", "php7.2", "php7.3" dependiendo de la versión instalada/disponible):

root@devuan:~# a2enmod php7.0
Considering dependency mpm_prefork for php7.0:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.0:
Enabling module php7.0.
To activate the new configuration, you need to run:
  service apache2 restart

Se debe realizar en este orden por lo anteriormente mencionado: primero deshabilitar el módulo en uso y luego habilitar el nuevo.

Finalmente, reiniciar el servidor Apache:

root@devuan:~# service apache2 restart
[ ok ] Restarting Apache httpd web server: apache2.

Eso es todo.


Tal vez pueda interesarte


Compartí este artículo