NGINX PHP-FPM 업데이트 및 여러 버전 동시 연동 방법

NGINX
튜토리얼 환경 : 우분투 16.04 LTS Xenial / NGINX 패키지 설치판 / PHP 패키지 설치

NGINX를 웹서버로 서비스 하는 경우 워드프레스, 텍스트큐브, Xpress Engine 같은 무료로 배포하는 CMS(Contents Management System)를 구동하기 위해서 PHP를 설치해야 합니다.

아파치 같은 경우, PHP를 사용하기 위한 모듈이 별도로 준비되어 있어 PHP 설치 후 아파치에서 약간의 설정만 하면 아파치 서비스 데몬과 함께 PHP가 같이 구동되는 방식이지만 NGINX 같은 경우에는 아파치와 다르게 구동 모듈이 별도로 존재하지 않기 때문에 PHP를 FastCGI 방식(PHP-FPM)으로 구동해야 합니다.

이전 포스트에서 NGINX와 PHP-FPM을 설치해서 연동하는 것을 알아봤는데 이러한 구조를 응용하면 PHP 버전 업데이트는 물론 각각의 가상 호스트에 PHP 버전별로 구동이 가능합니다.

사용하는 CMS가 특정 PHP 버전을 요구하는 경우, 개발된 솔루션이 업데이트가 안되는 경우 이전 PHP 버전으로 구동하는데 활용할 수 있습니다.

PHP-FPM 버전별 설치

# sudo su
# add-apt-repository ppa:ondrej/php
# apt-get update
# apt-get install php5.6-fpm
# apt-get install php7.1-fpm

우선 원하는 PHP 버전을 찾아 설치합니다. 예시로 PHP5.6 버전과 PHP7.1을 설치해 봤습니다.

- NGINX PHP-FPM 업데이트 및 여러 버전 동시 연동 방법

원하는 PHP 버전을 설치한 다음 /etc/php 디렉토리를 확인해 보면 하위 디렉토리에 PHP가 버전별로 분류 되어 있습니다.

NGINX 설정 예시

1. abc.com 가상 호스트

server {
     listen 80;
     server_name abc.com;
     location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
     }
}

2. xyz.com 가상 호스트

server {
     listen 80;
     server_name xyz.com;
     location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
     }
}

가상 호스트 설정 구문에서 PHP 확장자를 컨트롤하는 location 구문에서 fastcgi_pass 경로를 원하는 버전의 소켓과 연결합니다.

사이트별로 다른 PHP 버전을 구동하고 싶은 경우 각 가상 호스트 설정의 위와 같이 원하는 버전으로 소켓을 설정하면 되겠습니다.

- NGINX PHP-FPM 업데이트 및 여러 버전 동시 연동 방법

우분투에서 PHP-FPM을 패키지로 설치한 경우 /var/run/php 에 sock 파일이 모여 있습니다.

PHP 구동 및 세부 설정

- NGINX PHP-FPM 업데이트 및 여러 버전 동시 연동 방법

PHP-FPM은 프로세스를 띄워 구동되기 때문에 서비스 형태의 데몬으로 등록 됩니다. NGINX에서 PHP를 설정한 다음 PHP가 작동하지 않는다면 데몬이 구동되고 있는지 확인 후, 프로세스가 없다면 서비스를 실행하면 되겠습니다.

앞서 본 스크린샷 처럼 각 PHP 마다 디렉토리가 나뉘어 있기 때문에 php.ini나 php 모듈을 각 버전별로 관리해야 한다는점 유의하세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

nginx title 03
NGINX WebDAV 설정 방법
WebDAV(Web Distributed Authoring and Versioning)는 http를 이용해 웹서버에 저장되어 있는 파일을 여러 사용자가 편집하기 위해 고안된 프로토콜입니다. 실제로는 FTP 대용으로…
windows nginx php setting title
윈도우 NGINX PHP 연동 및 서비스 등록 방법
이전 포스트에서 윈도우에 NGINX를 설치하고 서비스에 등록하는 방법까지 알아봤는데요. NGINX를 개발 환경 또는 웹서버 환경으로 만들기 위해서 PHP를 설치해야 하는…