Redhat에 여러 버전의 PHP를 설치하는 방법

Redhat에 여러 버전의 PHP를 설치하는 방법

우리는 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를 설치하고 앱 2를 작동시킬 수 있다는 것을 알고 있습니다. 하지만 어떻게 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에서 수신 대기하는 것)를 다음과 같이 사용하여 해결할 수 있습니다. 도커 기반 아파치를 위한 역방향 프록시.

답변2

소프트웨어 컬렉션이에 이상적입니다. 공식 설명은 다음과 같습니다.

소프트웨어 컬렉션을 사용하면 동일한 소프트웨어 구성 요소의 여러 버전을 시스템에 동시에 설치할 수 있습니다. 소프트웨어 컬렉션을 사용하여 구축된 패키지는 Red Hat Enterprise Linux에 포함된 버전을 덮어쓰지 않습니다.

현재 버전인 RHSCL 2.3은 PHP 5.6 및 7.0이 포함된 패키지를 제공합니다. 참조설치RHSCL 릴리스 노트의 장을 참조하여 RHSCL 저장소에 액세스하고 패키지를 설치하는 방법을 알아보세요.

보다SCL을 사용하는 다양한 PHP 버전의 Apache하나의 Apache 서버에서 설치된 다양한 SCL 버전의 PHP를 사용하는 방법에 대한 지침은 RH 개발자 블로그를 참조하세요. (지침에서는 RHEL6을 가정하지만 RHEL7에서도 동일한 방법이 작동합니다. 설치 조언을 건너뛰십시오.)

관련 정보