Nginx - PHP 연동

분류없음 2014.01.21 23:51

Nginx와 PHP를 연동해 보자 ^^

1. PHP5-FPM 설치

prompt> sudo apt-get install php5-fpm

Nginx에서 PHP5는 PHP-FPM (php fastcgi process manager) 를 통해 동작한다.

PHP-FPM은 데몬 프로세스로 동작하며 기본적으로 9000번 포트에서 FastCGI 서버를 작동시킨다.
9000포트 사용은 file stream으로 변경하여 속도를 더 높일 수 있다 (다음 설정 부분 참고)

2. PHP5-FPM 설정 변경

prompt> sudo vim /etc/php5/fpm/pool.d/www.conf

아래 내용 찾아서 내용 변경

; Note: This value is mandatory.
;listen = 127.0.0.1:9000
listen = /dev/shm/php5-fpm.sock

/dev/shm/ 은 ubuntu의 공유메모리 영역이다.
이 부분에 stream을 사용하여, PHP5-FPM의 처리속도를 높일 수 있다

prompt> sudo /etc/init.d/php5-fpm restart
php5-fpm 다시 시작


3. Nginx 설정 변경

출처: http://devxpert.egloos.com/viewer/1012163


prompt> sudo vim /etc/nginx/sites-available/default

다음 부분을 추가 (or 주석 제거) 
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                # fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/dev/shm/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

prompt> sudo nginx -t
nginx configuration 설정 확인

prompt> sudo nginx -s reload
nginx 설정 적용


이제 index.php 파일을 간단히 만들어서 동작 확인만 해보면 되겠네요^^

아래 샘플 파일로 웹브라우저에 접속 시, (http://localhost/index.php)
php 정보화면이 나오면 정상적으로 적용된 겁니다 ^^


sample index.php
===============================================================================
 <html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 <?php phpinfo(); ?>
 </body>
</html>
===============================================================================


저작자 표시
신고

설정

트랙백

댓글