Cómo instalar múltiples versiones de php en redhat

Cómo instalar múltiples versiones de php en redhat

Tenemos una aplicación web heredada que ejecuta php 5.4.10 y otra aplicación que ejecuta la última versión de php ver 7.1.

Nos gustaría alojar ambas aplicaciones usando Apache en una instancia de un servidor Redhat 7.3.

Estos son los hosts virtuales configurados para cada aplicación web:

<VirtualHost *:80>
     DocumentRoot /var/www/app1.local.com/public_html
     ServerName www.app1.local.com
     ServerAlias app1.local.com
     ErrorLog /etc/var/www/app1.local.com/error.log
     CustomLog /var/www/app1.local.com/requests.log
</VirtualHost>

<VirtualHost *:80>
     DocumentRoot /var/www/app2.local.com/public_html
     ServerName www.app2.local.com
     ServerAlias app2.local.com
     ErrorLog /etc/var/www/app2.local.com/error.log
     CustomLog /var/www/app2.local.com/requests.log
</VirtualHost>

Según esta guía:https://webtatic.com/packages/php71/ Sé que puedo usar "sudo yum install php71w php71w-mysql" para instalar la última versión de php y hacer que la aplicación 2 funcione, pero ¿cómo puedo instalar también php versión 5.4.10 y configurar la aplicación 1 para usar la versión 5.4.10 de php? ¿Cuales son los pasos?

Perdonen si la pregunta les parece tonta, soy más o menos nuevo en linux. No he podido encontrar un tutorial confiable y actualizado que explique cómo hacer esto.

Respuesta1

Puede intentar usar Docker para esto, pero es posible que primero necesite instalarlo en su máquina. Entonces puedes intentarlo

sudo docker run --name=myphp5 -p 8080:80  -v /var/www/html/:/var/www/html -d eboraas/apache-php

Esto descargará la imagen acoplable eboraas/apache-php y ejecutará un contenedor acoplable llamado "myphp5" con apache/php5 instalado. El modificador -v montará su directorio local /var/www/html en el /var/www/html del contenedor y expondrá Apache en el puerto 8080 (para que no entre en conflicto con su Apache local ejecutándose en 80).

Puede detener el contenedor ejecutando

sudo docker stop myphp5

Del mismo modo, puedes iniciarlo ejecutando

sudo docker start myphp5

Para verificar el estado de todos sus contenedores, puede ejecutar

docker ps -a

Tenga en cuenta que hay otras imágenes con apache/php5 en dockerhub que puede utilizar para este propósito:https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=php5&starCount=0

La única limitación de este enfoque es que cada contenedor acoplable necesita exponer el http en un puerto diferente para que no pueda ejecutarse en 80. Sin embargo, esto se puede solucionar usando el apache local (el que escucha en el puerto 80) como Proxy inverso para Apache basado en Docker.

Respuesta2

Colecciones de softwareson ideales para esto. La descripción oficial dice:

Las colecciones de software le permiten instalar simultáneamente varias versiones de los mismos componentes de software en su sistema. Los paquetes creados utilizando colecciones de software no sobrescriben las versiones incluidas con Red Hat Enterprise Linux.

La versión actual, RHSCL 2.3, proporciona paquetes con PHP 5.6 y 7.0. Ver elInstalacióncapítulo de las Notas de la versión de RHSCL para aprender cómo obtener acceso a los repositorios de RHSCL e instalar los paquetes.

VerApache con varias versiones de PHP, usando SCLen el blog de desarrolladores de RH para obtener instrucciones sobre cómo utilizar las diferentes versiones SCL de PHP instaladas con un servidor Apache. (Tenga en cuenta que las instrucciones asumen RHEL6, pero el mismo método también funciona en RHEL7; simplemente omita los consejos de instalación).

información relacionada