문제

레일과 같은 여러 버전의 PHP를 실행할 수 있습니까? 여기 내 문제가 있습니다. 새로운 프로젝트에서 개발을 시작해야하며 최신 Zend 프레임 워크와 활성 레코드를 사용할 수 있도록 PHP 5.3을 사용할 계획이었습니다.
그러나 응용 프로그램을 호스팅 해야하는 기계에는 PHP 4.4가 있으며 다른 여러 응용 프로그램이 있습니다. 과거에 PHP 버전과 더 이상 사용되지 않은 기능을 업그레이드하면서 많은 문제에 직면 한 것처럼 서버에서 PHP 버전을 업그레이드하고 싶지 않습니다.
같은 상자에 여러 버전의 PHP를 가질 수 있는지 궁금한 다음 응용 프로그램을로드 할 수있는 버전을 지정하십시오 (레일과 유사).

도움이 되었습니까?

해결책

예, 가능합니다. 실제로 많은 서버가 이런 식으로 작동합니다. 특정 스크립트를 처리 해야하는 버전을 나타내는 .php4 및 .php5 확장자가 때때로 표시 될 수 있습니다.

ServerFault는이 질문을 해결했습니다

PHP4와 PHP5를 서로 함께 실행합니다

다른 팁

Docker를 사용하여 동일한 상자에서 여러 PHP 버전을 실행할 수 있습니다.

예제 명령은 다음과 같습니다.

sudo docker run -d -p 8055:80 -v /var/www:/var/www \
  -v /etc/apache2/sites-available:/etc/apache2/sites-available \
  -v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \
  codeyourdream/apache-sendmail-php55

이 명령은 다음과 같습니다.

  • 그것은 당신의 현지를 전달합니다 /var/www, /etc/apache2/sites-available 그리고 /etc/apache2/sites-enabled Docker 컨테이너의 해당 폴더에. 로컬 웹 사이트 및/또는 Apache 구성이 다른 폴더에있는 경우 첫 번째 부분을 교체하십시오. -v 값. 즉 형식은 다음과 같습니다. docker run -v /host/directory:/container/directory -other -options image_name command_to_run
  • 그것은 로컬 기계의 포트 8055를 Docker Container의 포트 80으로 전달합니다.
  • "CodeYourdream/Apache-Sendmail-Php55"에서 컨테이너를 실행합니다.

이 명령을 실행하는 경우 모든 로컬 웹 사이트는 포트 8055 (예 : URL을 통해 URL을 통해 http : // localsite : 8055) 및 PHP 5.5에 의해 처리

보다 https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-linux-machine-using-docker 자세한 사항은. 제휴 참고 : 이것은 우리 팀의 블로그입니다.

가능성은 하나의 버전의 PHP를 Apache 모듈로 사용하고 다른 버전은 CGI로 사용합니다. 그러나 내가 더 좋아하는 아이디어는 다음과 같습니다.

  • Apache의 몇 가지 뚜렷한 사례,
  • 각각 다른 포트에서 듣고 있습니다 (예를 들어, 포트 44000의 PHP 4.4, 포트 53100의 PHP 5.3.1)
  • 각각 다른 버전의 PHP를 사용합니다

이런 식으로, 당신은 완전히 다른 환경을 가지고 있으며, 서로 독립적으로 작동하며, 다른 환경에서 원하는 것을 구성/수정할 수 있습니다.

(그리고 URL에 포트 번호를 갖고 싶지 않다면, 나는 당신이 독특한 아파치 인스턴스 앞에 프록시를 넣을 수 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top