Temos um aplicativo web legado rodando php 5.4.10 e outro aplicativo rodando a versão mais recente do php versão 7.1
Gostaríamos de hospedar esses dois aplicativos usando Apache em uma instância de um servidor Redhat 7.3.
Aqui estão os hosts virtuais configurados para cada aplicativo 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:https://webtatic.com/packages/php71/ Eu sei que posso usar "sudo yum install php71w php71w-mysql" para instalar a versão mais recente do php e fazer o aplicativo 2 funcionar, mas como posso também instalar o php versão 5.4.10 e configurar o app1 para usar o php versão 5.4.10? Quais são as etapas?
Perdoe-me se a pergunta parece boba, sou mais ou menos novo no Linux. Não consegui encontrar um tutorial confiável e atualizado explicando como fazer isso.
Responder1
Você pode tentar usar o docker para isso, mas pode ser necessário instalá-lo primeiro em 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 docker eboraas/apache-php e executará um contêiner docker chamado "myphp5" com o apache/php5 instalado nele. A opção -v montará seu diretório /var/www/html local no /var/www/html do contêiner e exporá o apache na porta 8080 (para que não entre em conflito com o 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
Observe que existem outras imagens com apache/php5 no dockerhub que você pode usar para essa finalidade -https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=php5&starCount=0
A única limitação dessa abordagem é que cada contêiner docker precisa expor o http em uma porta diferente para que você não possa executá-lo na 80. No entanto, isso pode ser resolvido usando o apache local (aquele que escuta na porta 80) como um proxy reverso para o apache baseado em docker.
Responder2
Coleções de softwaresão ideais para isso. A descrição oficial diz:
As coleções de software permitem instalar simultaneamente várias versões dos mesmos componentes de software em seu sistema. Pacotes construídos usando coleções de software não sobrescrevem as versões incluídas no Red Hat Enterprise Linux.
A versão atual, RHSCL 2.3, fornece pacotes com PHP 5.6 e 7.0. Veja oInstalaçãocapítulo das Notas de Versão do RHSCL para aprender como obter acesso aos repositórios RHSCL e instalar os pacotes.
VerApache com diversas versões de PHP, usando SCLno RH Developer Blog para obter instruções sobre como usar as diferentes versões 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 conselho de instalação.)