우리는 PHP 5.4.10을 실행하는 이전 웹 애플리케이션과 최신 버전인 PHP 버전 7.1을 실행하는 다른 애플리케이션을 가지고 있습니다.
Redhat 7.3 서버의 한 인스턴스에서 Apache를 사용하여 두 애플리케이션을 모두 호스팅하려고 합니다.
다음은 각 웹 애플리케이션에 대해 구성된 가상 호스트입니다.
<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>
이 가이드에 따르면:https://webtatic.com/packages/php71/ "sudo yum install php71w php71w-mysql"을 사용하여 최신 버전의 PHP를 설치하고 app2가 작동하도록 할 수 있다는 것을 알고 있습니다. 하지만 PHP 버전 5.4.10도 설치하고 PHP 버전 5.4.10을 사용하도록 app1을 구성하려면 어떻게 해야 합니까? 단계는 무엇입니까?
이 질문이 어리석은 것 같더라도 용서해주세요. 저는 Linux를 처음 접하는 사람입니다. 이 작업을 수행하는 방법을 설명하는 신뢰할 수 있고 최신 튜토리얼을 찾을 수 없습니다.
답변1
docker를 사용하여 이 작업을 수행할 수 있지만 먼저 컴퓨터에 docker를 설치해야 할 수도 있습니다. 그럼 시도해 볼 수 있어
sudo docker run --name=myphp5 -p 8080:80 -v /var/www/html/:/var/www/html -d eboraas/apache-php
그러면 eboraas/apache-php 도커 이미지가 다운로드되고 내부에 apache/php5가 설치된 "myphp5"라는 도커 컨테이너가 실행됩니다. -v 스위치는 로컬 /var/www/html 디렉터리를 컨테이너의 /var/www/html에 마운트하고 포트 8080에 Apache를 노출합니다(따라서 80에서 실행되는 로컬 Apache와 충돌하지 않습니다).
다음을 실행하여 컨테이너를 중지할 수 있습니다.
sudo docker stop myphp5
다시 말하지만, 다음을 실행하여 시작할 수 있습니다.
sudo docker start myphp5
실행할 수 있는 모든 컨테이너의 상태를 확인하려면
docker ps -a
dockerhub에는 이 목적으로 사용할 수 있는 apache/php5가 포함된 다른 이미지가 있습니다.https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=php5&starCount=0
이 접근 방식의 유일한 제한 사항은 각 도커 컨테이너가 http를 다른 포트에 노출해야 하므로 80에서 실행할 수 없다는 것입니다. 그러나 이 문제는 솔루션으로 로컬 아파치(포트 80에서 수신 대기)를 사용하여 해결할 수 있습니다. Docker 기반 Apache용 역방향 프록시입니다.
답변2
소프트웨어 컬렉션이상적인 선택입니다. 공식 설명은 다음과 같습니다.
소프트웨어 컬렉션을 사용하면 동일한 소프트웨어 구성 요소의 여러 버전을 시스템에 동시에 설치할 수 있습니다. 소프트웨어 컬렉션을 사용하여 구축된 패키지는 Red Hat Enterprise Linux에 포함된 버전을 덮어쓰지 않습니다.
RHSCL 2.3의 현재 버전은 PHP 5.6 및 7.0용 패키지를 제공합니다. 보다설치하다RHSCL 릴리스 노트 장에서는 RHSCL 리포지토리에 액세스하고 패키지를 설치하는 방법을 알아봅니다.
바라보다Apache에는 SCL을 사용하는 다양한 PHP 버전이 있습니다.단일 Apache 서버에 설치된 다양한 SCL 버전과 함께 PHP를 사용하는 방법에 대한 지침을 보려면 RH 개발자 블로그를 방문하세요. (이 지침에서는 RHEL6을 가정하지만 RHEL7에도 동일한 방법이 적용됩니다. 설치 권장 사항을 건너뛰기만 하면 됩니다.)