다음 링크로 이동하면 우분투 운영체제에 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 이다.
'dev' 카테고리의 다른 글
[Linux] shell script for문 사용 (0) | 2019.04.24 |
---|---|
[Spring] Spring Boot 웹프로젝트 만들기 (0) | 2019.04.16 |
[JavaScript] input file 사진파일 미리보기 추가 (0) | 2019.04.07 |
[Vue.js] 페이지 로딩전 구분문자( {{ name }} ) 숨기기 (0) | 2019.04.03 |
[Linux] 쉘 변수를 txt파일안에 내용으로 넣기 (0) | 2019.03.08 |
[Linux] crontab 로그 남길때 파일명 date로 표기 (1) | 2019.03.06 |
[Linux] nohup으로 백그라운드에서 실행시켜놓기 (0) | 2019.03.06 |
[Linux] ssh 명령어로 접속시 패스워드도 옵션으로 전송 (0) | 2019.03.06 |