해당과정은 root 계정으로 진행됩니다.
- Nginx 설치
1 2 3 4 5 6 7 8 9 | # nginx 저장소를 추가 vi /etc/yum.repos.d/nginx.repo # 아래내용 추가 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 | cs |
설치 및 방화벽을 오픈합니다
1 2 3 4 5 6 7 8 | # yum을 이용해 설치 yum install -y nginx # 방화벽에서 웹서버 포트를 개방 sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload | cs |
nginx 환경설정을 수정합니다.
다음 두가지를 설정합니다
- 캐릭터셋 변경
- root 디렉토리 변경
1 2 | # 환경파일 수정 vi /etc/nginx/conf.d/default.conf | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # 파일내용 중 아래를 참조하여 수정합니다. server { listen 80; server_name localhost; #charset koi8-r; # 캐릭터셋 변경 charset utf-8; #access_log /var/log/nginx/host.access.log main; location / { # root 디렉토리 변경 # root /usr/share/nginx/html; root /home/www; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } ... } | cs |
완료되면 서비스를 재시작 합니다.
1 2 3 4 | systemctl restart nginx # 재부팅시 자동으로 서비스를 실행하려면 아래를 실행합니다 systemctl enable nginx | cs |
- php7 연동
php 7가 설치되어 있지 않다면 아래를 참조하시고, 설치되어 있다면 넘어가도 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # EPEL Repository 패키지 다운로드 & 설치 wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh epel-release-latest-7.noarch.rpm remi-release-7.rpm yum --enablerepo=remi update remi-release curl 'https://setup.ius.io/' -o setup-ius.sh bash setup-ius.sh # 기존에 설치된 php가 있다면 제거 yum remove -y 'yum list installed | cut -d " " -f 1 | grep php' # 설치 # nginx 와 연동하기 위해선 php-fpm 반드시 설치되어야 합니다 yum --enablerepo=remi-php73 install -y php php-common php-fpm # php 버전확인 php -v | cs |
nginx 환경설정 파일 수정
1 2 | # nginx 환경설정 파일을 수정합니다. vi /etc/nginx/conf.d/default.conf | cs |
location / {} 안에 설정한 root 폴더를 밖으로 뺍니다.
그렇지 않으면 fastcgi_param 에서 사용되는 SCRIPT_FILENAME 이 에러를 발생시킵니다.
에러: FastCGI sent in stderr: "Primary script unknown"...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # 다음을 찾아 주석해제 및 수정합니다. root /home/www location / { # root 디렉토리 변경 # root /usr/share/nginx/html; # php 연동할 경우 location root 설정은 제거 # root /home/www; index index.html index.htm; } location ~ \.php$ { # /var/run/php-fpm/php-fpm.sock 경로에 파일이 있는지 확인 fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } | cs |
php-fpm 설정파일 수정합니다
1 | vi /etc/php-fpm.d/www.conf | cs |
1 2 3 4 5 6 7 | # 파일 내용 찾아 수정 ; 아래 주석 ;listen = 127.0.0.1:9000 ; 아래 추가 listen = '/var/run/php-fpm/www.sock' listen.acl_users = nginx # 아래를 해두지 않으면 php-fpm 으로 www.sock 이 실행되어도 권한때문에 연결이 되지 않는다. listen.owner = nginx listen.group = nginx listen.mode = 0660 | cs |
서비스 재시작
1 2 3 4 5 6 | # 서비스 재시작 systemctl restart php-fpm systemctl restart nginx # 서비스 자동시작 등록 systemctl enable php-fpm | cs |
- 도메인 연결
# sites-available 폴더 생성 및 파일 생성
mkdir /etc/nginx/sites-available
# 도메인명 파일 생성
cd /etc/nginx/sites-available
vi [도메인명]
# 안에 내용을 다음과 같이 넣는다.
server {
listen 80
server_name [도메인명]
root [root 폴더 위치]
index index.html index.php
}
# 환경파일에 해당경로를 추가한다
vi /etc/nginx/conf.d/default.conf
systemctl restart nginx
다음과 같은 에러가 발생할 경우 대처법
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: [IP], server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/www.sock:", host: [IP]
nginx 설정파일에서 location 에 있는 root를 제거하고 그 위에 root 위치를 설정합니다
(그렇지 않으면 fastcgi_param 에서 사용되는 SCRIPT_FILENAME 이 에러를 발생)
1 2 3 4 5 6 | root /home/www; location / { #root /home/www; index index.html index.htm; } | cs |
nginx 를 재시작해줍니다
1 | systemctl restart nginx | cs |
'공부 > 프로그래밍' 카테고리의 다른 글
[linux-centos7] gitlab 사용 중 8080 포트사용하는 경우(unicorn 서비스) (0) | 2018.10.19 |
---|---|
[linux-centos7] docker 설치 (0) | 2018.10.17 |
[SpringBoot] Spock 이용해 테스트코드 작성하기 (0) | 2018.10.14 |
[linux-centos7] DokuWiki(도쿠위키) 설치 (0) | 2018.10.11 |
[linux-centos7] gitlab 설치하기 (0) | 2018.10.10 |
댓글