정보실

웹학교

정보실

php 우분투에 여러 버전의 PHP를 설치하는 방법?

본문

Docker, Vagrant, VirtualBox 등과 같은 시스템에는 여러 버전의 PHP를 구현할 수 있는 많은 도구가 있습니다. 

그러나 타사 도구에서 가능한 한 멀리 떨어져 있고 가능한 한 기본 도구를 활용하려고 합니다.


https://blog.magepsycho.com/how-to-install-multiple-versions-of-php-on-ubuntu 


우분투 시스템에 여러 버전의 PHP를 설치하는 방법을 배우고 싶습니까? 


가정 해 봅시다.

  • OS: Ubuntu 16.04
  • PHP: 7.1 (PHP-FPM)
  • Nginx: 1.10

그리고 PHP 7.2를 설치하고 싶습니다.


PHP 7.2 설치 


다음 명령을 실행하여 PHP 저장소 및 Ubuntu 시스템을 업데이트하십시오.


sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update


이제 새 버전의 PHP를 설치할 수 있습니다


sudo apt install -y php7.2-fpm
sudo apt install -y php7.2-dev
php -v


php -v가 여전히 이전 PHP 버전을 가리키는 경우 다음 명령을 실행하십시오.


sudo update-alternatives --set php /usr/bin/php7.2


PHP 7.2 모듈 설치 


PHP가 응용 프로그램과 작동하려면 추가 PHP 모듈이 필요할 수 있습니다. Magento 2에 특히 가장 필요한 모듈을 다음과 같이 설치할 수 있습니다.

sudo apt install php7.2-mysql php7.2-bcmath php7.2-curl php7.2-xml php7.2-gd php7.2-intl php7.2-mcrypt php7.2-soap php7.2-zip


설치된 PHP 모듈을 확인하려면 :


php -m | grep -E 'bcmath|ctype|curl|dom|gd|hash|iconv|intl|json|mbstring|mcrypt|openssl|pdo|soap|spl|xml|xsl|zip'


PHP 모듈을 검색하려면 :


sudo apt-cache search php7.2


이제 새로운 PHP 7.2 버전과 필요한 모듈이 설치되었습니다. 마찬가지로 PHP 7.3 및 관련 모듈을 설치할 수 있습니다.


이제 큰 질문은 응용 프로그램별로 특정 PHP 버전을 사용하는 방법입니다.


그 전에, 우리는 PHP가 어떻게 사용되는지 알아야 합니다.


PHP는 CLI 또는 웹 서버 모듈 (mod_php, CGI, FPM)로 사용될 수 있습니다.


PHP CLI 버전 전환 


PHP의 php 명령은 /usr/bin/php에 연결되어 있습니다. 

/usr/bin/php는 /etc/alternatives/php에 연결되어 있으며, 다시 실제 PHP에 연결되어 있습니다 (예 : /usr/bin/php7.2). 여기에 PHP CLI 버전을 전환하는 논리가 있습니다.


기본적으로 PHP 설치는 CLI 버전을 새 버전으로 변경합니다. PHP 7.2와 같은 특정 버전으로 전환하려는 경우 update-alternatives 명령을 사용할 수 있습니다


sudo update-alternatives --set php /usr/bin/php7.2
php -v


PHP 실행 파일 목록을 찾을 수 있습니다


ll /usr/bin | grep php

composer 명령 또는 CLI PHP 스크립트를 실행 중인 경우 필요한 PHP 버전을 설정하려면 업데이트 대안을 실행해야 할 수도 있습니다.


PHP 웹 서버 버전 전환 


아시다시피 Nginx는 PHP-FPM을 통해 PHP 코드를 실행하는데, 이는 Unix 소켓에서 수신 대기합니다. 그러면 Nginx의 서버 블록에서 PHP 버전을 쉽게 전환 할 수 있습니다.


PHP 7.2로 Nginx에서 실행되는 Magento 2와 같은 응용 프로그램을 가리키려면 fastcgi_pass 지시문의 값을 다음과 같이 간단히 변경할 수 있습니다.

fastcgi_pass unix:/run/php/php7.2-fpm.sock


PHP-FPM 용 유닉스 소켓 목록을 찾으려면


ll /run/php | grep sock


Web SAPI 용 PHP 버전을 확인하기 위해 .php 파일에서 phpinfo()를 사용할 수 있습니다.


결론 


일부 사람들은 이를 위해 Vagrant 기반 솔루션인 Docker를 사용할 수 있습니다. 


필자는 항상 타사 솔루션에 의존하지 않고 기본 시스템을 선호합니다. 

이를 통해 오버 헤드 및 대기 시간 문제가 최소화되므로 응용 프로그램 개발이 더 쉽고 빨라집니다.


위에서 읽으면 PHP CLI 및 웹 SAPI 버전을 얼마나 쉽게 변경할 수 있습니까? 

CLI 기반의 경우 필요에 따라 update-alternatives 명령을 실행해야 할 수도 있습니다. 

그러나 웹 응용 프로그램의 경우 필요한 PHP 버전이 설정되면 특정 PHP 버전에서 독립적으로 작동합니다.



페이지 정보

조회 49회 ]  작성일20-02-13 16:21

웹학교