본문으로 바로가기

[Ubuntu] 우분투 NGINX - PHP - MySQL

category 리눅스/Ubuntu 2013. 9. 20. 00:30

NGINX(엔진엑스)를 PHP와 연동하기 위해서는 PHP-FPM(PHP FastCGI Process Manager)를 이용해야 합니다. PHP-FPM은 PHP 5.4RC부터는 PHP에 기본 내장되어 있고 그 이전 버전에서는 따로 설치를 해야 합니다.

MySQL 설치

sudo apt-get install mysql-server mysql-client

PHP-FPM 설치

우분투 12.04에서 php를 apt-get을 이용해 설치를 진행한다면 php 5.3.10 버전(2013/09/15 기준)이 설치된다.

PHP-FPM이 포함되어 있지 않은 버전이니 이를 설치해야 한다.


php-fpm 설치시 의존성으로 php5가 설치된다.

sudo apt-get install php5-fpm

php5 모듈 설치

sudo apt-get install php5-cli php5-mcrypt php5-gd

php-fpm 과 mysql 연동

sudo apt-get install php5-mysql

NGINX 과 PHP-FPM 연결

엔진엑스의 설정파일에서 server { 부분의 location / {의 root 디렉토리설정을 server { 쪽으로 이동시켜 전역적인 설정으로 만들어주고 php설정을 변경한다.

sudo vi /usr/local/nginx/conf/nginx.conf

  server {
    listen    80;
    server_name localhost;
    root html;
  }

  location ~ \.php$ {
    # 접근 속도가 빠르게 유닉스 소켓으로 변경
    fastcgi_pass   unix:/var/run/php5-fpm.sock;
    fastcgi_index  index.php;

    # 파일 이름 설정
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }  

php-fpm의 설정파일도 유닉스 소켓으로 변경

sudo vi /etc/php5/fpm/pool.d/www.conf

  listen = /var/run/php5-fpm.sock

보안설정

보안과 관련하여 [ 링크 ]

아래 내용 추가하자

sudo vi /usr/local/nginx/conf/fastcgi_params

  fastcgi_split_path_info ^(.+\.php)(/.*)$;
  fastcgi_param  PATH_INFO          $fastcgi_path_info if_not_empty;
  fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

서비스 재시작

sudo service php5-fpm restart
sudo service nginx restart