Nginx 설치 매뉴얼(PHP-FPM 설치 포함)(Ubuntu 운영체제 기준)

우분투 운영체제 기준 Nginx 설치 매뉴얼입니다.
기본 설치부터 간단한 환경설정까지 확인할 수 있습니다.

Nginx 웹서버 SW 설치
$ sudo apt-get install nginx

설치 버젼 확인
$ nginx -v

서비스 상태 확인
$ sudo service nginx status

서비스 실행
$ sudo /etc/init.d/nginx start (또는 $ sudo service nginx start)

서비스 재시작
$ sudo /etc/init.d/nginx restart (또는 $ sudo service nginx restart)

서비스 중지
$ sudo /etc/init.d/nginx stop  (또는 $ sudo service nginx stop)

서비스 재설정
$ sudo service nginx reload

서비스 재시작 후 웹브라우져를 띄우고 http://서버주소 접근 테스트
(Welcome to nginx! 라고 출력되면 정상 설치된 것임)

PHP 페이지 출력을 위한 PHP-FPM 설치
(이 모듈을 설치하지 않으면 php 페이지가 정상적으로 출력되지 않습니다.
현재 서버에 설치되어 있는 php가 7.0인 경우에만 아래 명령어를 사용하세요)

$ sudo apt-get install php7.0-fpm

기타 많이 사용되는 PHP 모듈도 함께 설치
$ sudo apt-get install php7.0-gd php7.0-curl php7.0-mbstring php7.0-xml php7.0-mcrypt

php-fpm 모듈 재시작
$ sudo service php7.0-fpm restart

Nginx 환경설정 파일 열고 퍼미션 설정
$ sudo nano /etc/nginx/nginx.conf

user nginx; 라인을 찾고 아래와 같이 수정
user www-data;

worker_processes 1; 라인을 찾고 아래와 같이 수정
worker_processes auto;

Nginx의 서버 환경설정 파일 생성 또는 수정
비어 있으면 아직 생성 안 된 것이므로 새로 만들면 됨.
$ sudo nano /etc/nginx/conf.d/default.conf

아래의 구문을 복사한 후 에디터에 붙여 넣기.
저장하고 에디터 모드 종료.

server {
    listen   80 default_server;
    server_name  localhost;
    root   /usr/share/nginx/html;
 
    location / {
        index  index.php index.html;
    }
 
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
 
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}


위의 구문 중 fastcgi 설정은 PHP 페이지가 PHP-FPM 모듈을 통해서 실행되도록 설정하는 역할 수행.

sites-available 디렉토리의 default 파일 열고 Server { 로 시작해서  } 로 끝나는 라인 찾고 해당 라인 모두 삭제
$ sudo nano /etc/nginx/sites-available/default
conf.d의 default.conf 파일이 이 파일을 대신함.

Nginx의 fastcgi_params 환경설정 파일 열고 아래와 같이 수정
$ sudo nano /etc/nginx/fastcgi_params

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;
 
fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;
 
fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
 
fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;
 
fastcgi_param   HTTPS                   $https;
 
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;


수정 사항 저장하고 에디터 모드 종료.


그 밖에 php fpm용 php 환경설정 파일 열고 file 업로드 크기 및 date.timezone 같은 사항들 수정.
$ sudo nano /etc/php/7.0/fpm/php.ini


Nginx 서비스 재시작
$ sudo /etc/init.d/nginx restart (또는 $ sudo service nginx restart)

웹브라우져로 php 페이지가 정상 출력되는 지 확인.

nginx 설정 관련 파일을 어떻게 수정하는지 궁금하신 경우 첨부한 파일들을 참고하세요.
첨부파일은 로그인해야 보실 수 있습니다.
Sign In or Register to comment.