Clicky

Instalar y ejecutar múltiples versiones de PHP con Virtualmin

PHP múltiples versiones

Elegir qué versión se utilizará para un dominio dado (servidor virtual), o para un directorio específico

Virtualmin no proporciona una manera fácil de ejecutar versiones antiguas de PHP, como PHP 5.4, PHP 5.5, PHP 5.6, que podríamos necesitar, por ejemplo, si tenemos páginas web desarrolladas hace algún tiempo y que no aceptan los modernos script de PHP 7.

La mayoría de las guías de mejoramiento de PHP implican la sustitución directa y la mejora de PHP mediante la modificación de diversos archivos del servidor web Apache HTTPD y la configuración de PHP INI para utilizar la versión de PHP que se acaba de instalar. Sin embargo, modificar directamente los archivos principales no es un método recomendado para actualizar PHP en Virtualmin ya que puede llevar en el futuro a conflictos con Virtualmin y/o la base de Webmin.

Si tienes que usar una versión más antigua de PHP en el entorno Virtualmin, este es compatible con la instalación de múltiples versiones de PHP desde Virtualmin 3.99. Con más de una versión de PHP instalada, podrás elegir qué versión se utilizará para un dominio dado (servidor virtual), o para un directorio específico.

La siguiente guía sobre cómo instalar una segunda versión PHP adicional se basa en CentOS 7 de 64 bits mediante el uso de las Colecciones de software (SLCs). Colecciones de software permite a los usuarios crear y al mismo tiempo instalar en el sistema varias versiones de los mismos componentes de software, sin afectar a las versiones de los sistemas de los paquetes predeterminados instalados del sistema de distribución.

El repositorio Colecciones de Software (Software Collections Repository) instala los paquetes adicionales en el directorio /opt/, manteniendo vírgenes los actuales paquetes en el directorio /usr/. El repositorio de Colecciones de Software está disponible para las principales distribuciones de Linux basadas en RPM, incluyendo Red Hat Enterprise Linux, Fedora, CentOS y Scientific Linux. Por lo tanto, la guía debería funcionar en la mayoría de estas distribuciones de Linux, pero en el sistema de 64 bits, ya que las SCLs sólo proporcionan paquetes x86_x64.

Cómo instalar PHP 5.4 o 5.5 para Virtualmin desde el Repositorio de PHP de Colecciones de Software

Iniciar sesión en el servidor como root a través de la consola física o SSH.

Instalar las herramientas de Colecciones de software:

# yum install scl-utils

Descargar el paquete RPM de PHP con el repositorio para tu sistema:

Para PHP 5.4 en RHEL 6 y CentOS 6:

# wget https://www.softwarecollections.org/en/scls/rhscl/php54/epel-6-x86_64/download/rhscl-php54-epel-6-x86_64.noarch.rpm

Para PHP 5.4 en RHEL y CentOS 7 7:

# wget https://www.softwarecollections.org/en/scls/rhscl/php54/epel-7-x86_64/download/rhscl-php54-epel-7-x86_64.noarch.rpm

Para PHP 5.5 en RHEL 6 y CentOS 6:

# wget https://www.softwarecollections.org/en/scls/rhscl/php55/epel-6-x86_64/download/rhscl-php55-epel-6-x86_64.noarch.rpm

Para PHP 5.5 en RHEL y CentOS 7 7:

# wget https://www.softwarecollections.org/en/scls/rhscl/php55/epel-7-x86_64/download/rhscl-php55-epel-7-x86_64.noarch.rpm

Instalar el paquete repo de PHP

Para PHP 5.4:

# yum install rhscl-php54-*.noarch.rpm

Para PHP 5.5:

# yum install rhscl-php55-*.noarch.rpm

Instalar el PHP adicional:

Para PHP 5.4:

# yum install php54

Para PHP 5.5:</>

# yum install php55

Empezar a utilizar Colecciones de Software con la nueva instancia adicional de bash con PHP habilitado

Para PHP 5.4:

# scl enable php54 bash

Para PHP 5.5:

# scl enable php55 bash

Nota: Si estás utilizando CentOS, también puede instalar via yum la liberación del repositorio de CentOS Colecciones de software, centos-release-SCL. A continuación, proceder directamente a la instalación con yum de php54 o php55.

Configurar servidor virtual (página web o dominio) para utilizar otra versión de PHP en Virtualmin

1. Entrar a Virtualmin, y verificar que Virtualmin ve varias versiones de PHP instaladas seleccionando System Settings -> Re-Check Configuration . Una de las líneas debe ser similar a lo siguiente:

•  The following PHP versions are available : 5.4.40 (/opt/rh/php54/root/usr/bin/php-cgi), 5.5.21 (/opt/rh/php55/root/usr/bin/php-cgi), 7.0.4 (/bin/php-cgi)

2. Opcional: Por defecto, Virtualmin utilizará automáticamente la versión más alta disponible de PHP para los nuevos servidores virtuales. Si deseas especificar qué versión de PHP usarás, ve a System Settings -> Server Templates -> Default Settings -> Apache Website, y cambia el valor de la opción versión de PHP por defecto.

3. Para cambiar un servidor virtual existente para que utilice otra versión de PHP, selecciona el servidor virtual de la lista desplegable y, a continuación, ve a Server Configuration -> PHP Versions.

versiones PHP en un VirtualHost

Indica la versión PHP por defecto que se utilizará para el servidor virtual mediante la selección de la versión deseada como el valor de defecto en el directorio HTML de la lista desplegable.

versiones disponibles de PHP

Si es necesario, introduce el sub-directorio del sitio web y especifica una versión diferente de PHP que se utilizará para ese directorio específico. Aquí se debe introducir sólo en nombre del subdirectorio o carpeta, sin la ruta de la raíz de sitio web. Por ejemplo sub-directorio (en la imagen de abajo hablame-del-mar y no /public_html/hablame-del-mar/).

path a un subdirectorio para una versión de PHP

Al salvar las versiones nos debe dar todo correcto:

versiones de PHP actualizadas

Sino nos dará un error parecido a este, Failed to save PHP versions : Invalid website subdirectory - must be like myapp or programs/myapp:

error de directorio en múltiples versiones de PHP

Nota: Antes de utilizar la versión de PHP recién instalada, es posible que desees instalar las extensiones PHP necesarias u objetos compartidos dinámicos que agregan soporte para varias bibliotecas o protocolos de PHP. Algunos ejemplos incluyen php54-php-cli (php55-php-cli), php54-php-mysql (php55-php-mysql), php54-php-gd (php55-php-gd), php54-php-imap (php55-php-imap), php54-php-mbstring (php55-php-mbstring), etc.

Ten en cuenta que algunas extensiones PHP populares requieren repositorios adicionales de SCL. Por ejemplo, php54-php-mcrypt (php55-php-mcrypt) y php54-php-mysqlnd (php55-php-mysqlnd). Para instalar estos paquetes, descarga e instala el paquete repo Remi Collect"™s Php54more or Php55more, que amplía la colección disponible en RHSCL o CentsOS-SCL, de acuerdo con el PHP la versión de la distribución.

Para PHP 5.4 en RHEL 6 y CentOS 6:

# wget https://www.softwarecollections.org/en/scls/remi/php54more/epel-6-x86_64/download/remi-php54more-epel-6-x86_64.noarch.rpm

Para PHP 5.4 en RHEL y CentOS 7 7:

# wget https://www.softwarecollections.org/en/scls/remi/php54more/epel-7-x86_64/download/remi-php54more-epel-7-x86_64.noarch.rpm

Para PHP 5.5 en RHEL 6 y CentOS 6:

# wget https://www.softwarecollections.org/en/scls/remi/php55more/epel-6-x86_64/download/remi-php55more-epel-6-x86_64.noarch.rpm

Para PHP 5.5 en RHEL y CentOS 7 7:

# wget https://www.softwarecollections.org/en/scls/remi/php55more/epel-7-x86_64/download/remi-php55more-epel-7-x86_64.noarch.rpm

 

 

Jesus_Caceres