2019. 3. 14. 23:33
반응형

다음 링크로 이동하면 우분투 운영체제에 nginx와 php를 설치하여 연동하는 방법이 나와 있다.

https://osasf.net/discussion/605/nginx-설치-매뉴얼-php-fpm-설치-포함-ubuntu-운영체제-기준



정리하면 다음과 같다.


일단 nginx를 설치한다.

sudo apt install nginx


php-fpm을 설치한다.

sudo apt install php-fpm


php-xml, php-gd 등의 모듈도 설치한다.

sudo apt install php-xml php-gd



nginx 설정


1. default.conf 파일 생성

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.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}



2. /etc/nginx/sites-available/default 파일의 server 내용 주석 처리

사실상 모두 주석 처리된다.

따라서 파일을 지우고 빈파일을 다시 만들어도 될 것 같다.

sudo rm /etc/nginx/sites-available/default

sudo touch /etc/nginx/sites-available/default

참고로 1번에서 default.conf 파일을 생성하는 대신 저 내용을 그냥 sites-available/default 파일에 넣어주는건 안될까? 라는 생각이 들기도 했지만 나는 초보이기 때문에 그냥 하라는대로 하는게 좋을 것 같은 느낌이 들기도 했다.


3. /etc/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;



4. nginx.conf 안에 필요한 내용 추가

sudo nano /etc/nginx/nginx.conf

http { } 안에 fastcgi_buffering off; 를 추가해줘야 제대로 되는 것 같다.

이걸 추가안해주면 처음 한번은 제대로 php파일이 실행되는데 그 다음은 페이지가 안나타나는 것을 볼 수 있었다.



5. nginx, php-fpm restart

sudo nginx -t

sudo service nginx reload

sudo service nginx restart

sudo service php7.2-fpm restart



참고로 index.html이나 index.php 파일의 위치는 /usr/share/nginx/html 이다.

반응형