Unix 시스템의 Nginx 1.4.x
이 문서에서는 Nginx 1.4.x HTTP 서버용 PHP-FPM으로 PHP를 설치하고 구성하는 방법을 다룹니다.
이 가이드에서는 소스에서 Nginx를 빌드했으며 따라서 모든 바이너리와 구성 파일이 /usr/local/nginx
에 있다고 가정합니다. 그렇지 않고 다른 수단을 통해 Nginx를 얻은 경우 이 설명서를 설정으로 번역하려면 » Nginx Wiki를 참조하세요.
이 가이드는 PHP 애플리케이션을 처리하고 포트 80에서 서비스하도록 Nginx 서버를 구성하는 기본 사항을 다룰 것입니다. 이 문서의 범위를 넘어서 설정을 최적화하려면 Nginx 및 PHP-FPM 문서를 공부하는 것이 좋습니다.
이 문서 전체에서 버전 번호는 'x'로 대체되어 이 문서가 향후에도 올바르게 유지될 수 있도록 하였으므로 필요에 따라 해당 버전 번호로 교체하십시오.
- 시스템에 Nginx를 다운로드하여 설치하려면 Nginx Wiki » 설치 페이지를 방문하는 것이 좋습니다.
-
PHP 소스를 구하고 압축을 풉니다.
tar zxf php-x.x.x
-
PHP를 구성하고 빌드합니다. 여기에서 활성화할 확장과 같은 다양한 옵션으로 PHP를 사용자 정의할 수 있습니다. 사용 가능한 옵션 목록을 보려면 ./configure --help를 실행하십시오. 이 예에서는 PHP-FPM 및 MySQLi 지원으로 간단한 구성을 수행합니다.
cd ../php-x.x.x ./configure --enable-fpm --with-mysqli make sudo make install
-
구성 파일을 가져와 올바른 위치로 이동
cp php.ini-development /usr/local/php/php.ini cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf cp sapi/fpm/php-fpm /usr/local/bin
-
파일이 존재하지 않는 경우 Nginx가 PHP-FPM 백엔드로 요청을 전달하지 않도록 하여 임의의 스크립트 삽입을 방지하는 것이 중요합니다.
php.ini 파일에서 cgi.fix_pathinfo 지시문을
0
으로 설정하여 이 문제를 해결할 수 있습니다.php.ini 불러오기:
vim /usr/local/php/php.ini
cgi.fix_pathinfo=를 찾아 다음과 같이 수정합니다.
cgi.fix_pathinfo=0
-
서비스를 시작하기 전에 php-fpm이 www-data 사용자 및 www-data 그룹으로 실행되어야 함을 지정하도록 php-fpm.conf를 수정해야 합니다.
vim /usr/local/etc/php-fpm.d/www.conf
다음을 찾아 수정합니다.
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = www-data group = www-data
이제 php-fpm 서비스를 시작할 수 있습니다.
/usr/local/bin/php-fpm
이 가이드는 php-fpm을 더 이상 구성하지 않을 것입니다. php-fpm을 추가로 구성하는 데 관심이 있다면 문서를 참조하십시오.
-
이제 PHP 애플리케이션 처리를 지원하도록 Nginx를 구성해야 합니다.
vim /usr/local/nginx/conf/nginx.conf
기본 위치 블록을 수정하여 .php 파일을 제공해야 함을 인식합니다.
location / { root html; index index.php index.html index.htm; }
다음 단계는 .php 파일이 PHP-FPM 백엔드로 전달되었는지 확인하는 것입니다. 주석 처리된 기본 PHP 위치 블록 아래에 다음을 입력합니다.
location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
Nginx를 다시 시작하십시오.
sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx
-
테스트 파일 만들기
rm /usr/local/nginx/html/index.html echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
이제 http://localhost로 이동합니다. 이제 phpinfo()가 표시되어야 합니다.
위의 단계를 따르면 PHP를 FPM SAPI 모듈로 지원하는 실행 중인 Nginx 웹 서버를 갖게 됩니다. 물론 Nginx 및 PHP에 사용할 수 있는 더 많은 구성 옵션이 있습니다. 자세한 내용을 보려면 해당 소스 트리에서
./configure --help
를 입력하십시오.