Computer Engineering/Server

AWS EC2, RDS를 활용한 웹 서버 구축하기(3)- nginx, php 설치

말하는호구마 2021. 1. 6. 02:44

만날 천날 apache만 쓰다가 nginx는 처음 써보기에 nginx에 대해서 간단하게 알아보았다. 

nginx는 apache보다 단순하고 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다고 한다. 

AWS에서는 시장점유율이 44%나 되는 것으로 봐서 가볍고, 성능이 좋은 엔진이라고 할 수 있다. 

Apache독주에 제동을 걸만한 엔진이라고!!!!!

 

 

궁금하니까 후딱 설치해보자!

 

nginx를 사용하기 위해서 yum 패키지 매니저를 사용할 것이기 때문에 업데이트를 해주자

 

--> yum update

 

1.nginx install

 

다음은 nginx 설치이다.

>> yum install nginx

로 설치가 가능하다고 하지만 aws에서는 조금 다른 모양이다 (알아보니 yum으로는 nginx를 못찾는 모양이다)

아래와 같은 오류가 떴다

하라는대로 해주자! 

sudo amazon-linux-extras install nginx1을 설치하자

잘 깔린 것을 확인할 수 있다

nginx을 켜고 끄는 명령어이다.

>>sudo systemctl start nginx

>>sudo systemctl stop nginx

 

nginx설정은 /etc/nginx에서 nginx.conf로 확인할 수 있다.

퍼블릭 ip로 접속해보면

잘 된다!!!!!

 

2.php install

php를 설치해보자.

nginx와 마찬가지로 

>>sudo yum install php

연동을 위해 php-fpm도 설치해주어야 한다.

아파치는 php가 기본 확장 프로그램으로 돌아가지만 nginx는 바로 php를 실행시킬 수 없기 때문에 php-fpm으로 처리를 넘겨줘야 하기 때문.

사실은 php-fpm만 설치해도 php가 깔린다고 한다.

>>sudo yum install php-fpm

 

 

를 실행해준다.

잘 깔린 것을 확인할 수 있다.

 

 

(ip를 하나하나 가리기 귀찮아서 terminal이름을 바꿔버렸다. 바꾸는 방법은 -->hello-gg.tistory.com/42)

 

php확장 모듈도 설치해준다

>>yum install  php-devel php-mysql php-pdo php-pear php-mbstring php-cli php-odbc php-imap php-gd php-xml php-soap


3. nginx php연동하기

3.1 www.conf 파일 수정하기

/etc/php-fpm.d/www.conf 파일을 아래와 같이 수정해준다.

user, group을 apache에서 nginx로 바꾸기!

listen.owner, listen.group nginx로 바꿔주기

사진은 없지만

listen = /var/run/php-fpm/php-fpm.sock

이부분을 수정해줘야한다.

 

 

 

 

 

3.2 nginx.conf파일 수정하기

 

다른 블로그들은 보니 /etc/nginx/conf.d/default.conf 파일을 수정한다고 되어있는데... 나는 conf.d디렉토리 밑에 아무런 파일이 없다..

그래서 /etc/nginx/nginx.conf파일을 뒤져 보니 아래와 같았다.

include /etc/nginx/conf.d/*.conf 

이부분을 보고 대충 생각하면...conf.d디렉토리에 내가 임의로 default.conf파일을 만들어도 알아서 include 할 것 같다.

그렇다면 굳이 default.conf파일이 없어도, nginx.conf 코드에 직접적으로 내용을 넣으면 된다는 소리다. 

그러니 다른 블로그에서 default.conf파일을 보고 따라 넣어보자!

        location ~ \.php$ {
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        }

이부분을 추가하고 php와 nginx를 다시 시동해보자

재시동의 명령어!

>> systemctl restart nginx

>> systemctl restart php-fpm

 

 

 

 

테스트를 위해 임이의 Php파일을 만들어보자

페이지 파일들은 /usr/share/nginx/html 디렉토리에 생성하면 된다.

확인 결과 성공!