Como instalar múltiplas versões do php no redhat

0

Temos um aplicativo da web legado executando o php 5.4.10 e outro aplicativo executando a versão mais recente do php ver 7.1

Gostaríamos de hospedar esses dois aplicativos usando o apache em uma instância de um servidor redhat 7.3.

Aqui estão os hosts virtuais configurados para cada aplicativo da 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>

De acordo com este guia: link Eu sei que posso usar "sudo yum instalar php71w php71w-mysql" para instalar a versão mais recente do php e obter o aplicativo 2 funcionando, mas como também posso instalar o php ver 5.4.10 e configurar o app1 para usar a versão 5.4.10 do php? Quais são as etapas?

Me perdoe se a pergunta parece boba, sou mais ou menos nova no Linux. Eu não consegui encontrar um tutorial confiável e atualizado explicando como fazer isso.

    
por hervens 14.04.2017 / 18:53

2 respostas

1

Você pode tentar usar o docker para isso, mas talvez seja necessário instalá-lo primeiro na sua máquina. Então você pode tentar

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

Isso fará o download da imagem de encaixe eboraas / apache-php e executará um contêiner docker chamado "myphp5" com o apache / php5 instalado. O switch -v montará seu diretório local / var / www / html no arquivo / var / www / html do contêiner e exporá o apache na porta 8080 (para que não colida com o seu apache local rodando em 80).

Você pode parar o contêiner executando

sudo docker stop myphp5

Da mesma forma, você pode iniciá-lo executando

sudo docker start myphp5

Para verificar o status de todos os seus contêineres, você pode executar

docker ps -a

Por favor, note que há outras imagens com apache / php5 no dockerhub que você pode usar para esse fim - link

A única limitação dessa abordagem é que cada contêiner do Docker precisa expor o http em uma porta diferente, portanto você não pode tê-los em execução no 80. Isso pode ser resolvido usando o apache local (aquele que está escutando na porta 80). ) como um proxy reverso para o apache baseado no docker.

    
por 14.04.2017 / 21:40
0
As Coleções de software são ideais para isso. A descrição oficial diz:

Software collections allow you to concurrently install multiple versions of the same software components on your system. Packages built using software collections do not overwrite the versions included with Red Hat Enterprise Linux.

A versão atual, RHSCL 2.3, fornece pacotes com PHP 5.6 e 7.0. Consulte o capítulo Instalação das Notas da versão RHSCL para aprender como obter acesso a repositórios RHSCL e instalar os pacotes.

Veja Apache com várias versões do PHP, usando SCL no RH Developer Blog para obter instruções sobre como usar as diferentes versões de SCL instaladas do PHP com um servidor Apache. (Observe que as instruções assumem o RHEL6, mas o mesmo método também funciona no RHEL7 - basta pular o aviso de instalação).

    
por 15.04.2017 / 11:36