[Server] AWS 서버 구축하기 Linux + Nginx PHP MySQL

AWS 서버 구축, Linux + Nginx PHP MySQL 설치

 

1 ) AWS 가입 및 지역 설정

먼저 AWS 프리티어 계정을 만들어 준다! 기본 지원 - 무료를 선택하고 가입을 완료하면 된다.

AWS에 가입을 하고 나면 위와 같은 콘솔 홈이 등장하는데, 이때 우측 상단에서 지역 설정을 할 수 있다.

지역을 아시아 태평양(서울)로 변경해주면 된다!

 

 

2 ) 인스턴스 생성

콘솔에 ec2를 검색하고 인스턴스 생성을 이미지 파일을 선택해주면 된다.

 나 같은 경우 Ubuntu 18.04 LTS ARM을 선택해주었다.

 

인스턴스 유형은 t2.micro를 선택해준다.

 

용량의 경우 프리티어 계정이 사용할 수 있는 용량이 최대 30GB라고 하니 30으로 설정하고 넘어가겠다.

 

  • 보안 그룹 규칙 1 : ssh 0.0.0.0/0 22
  • 보안 그룹 규칙 2 : 사용자 지정 TCP 위치 무관 80

다음으로 키페어 이름을 설정해주고, RSA, .pem을 선택하고 키페어를 생성해준다.

나중에 SSH를 등록할 때 키페어가 필요하기 때문에 다운 받은 후 위치를 알아두자.

키페어를 다운로드하고 인스턴스를 시작하면 된다 → 키페어를 통해서 내가 생성한 ec2에 접근할 수 있다 !

 

3 ) 탄력적 IP 주소 할당

콘솔에서 [탄력적 IP] - [탄력적 IP 주소 할당] 경로로 이동하여 탄력적 IP주소를 할당하면 된다.

(내가 만든 인스턴스를 선택했는지 확인해주자!)

 

4 ) 서버 접속

 

인스턴스 생성과 탄력적 IP주소까지 할당하였다면 이제 터미널을 통해서 서버에 접속하면 된다.

 

$ cd [키페어를 보관해둔 경로]

일단 먼저 아까 다운받았던 키페어가 있는 곳으로 이동하면 된다.

 

[EC2] - [인스턴스] - [연결] - [SSH 클라이언트]로 이동하면퍼블릭 DNS을(를) 사용하여 인스턴스에 연결할 수 있는 예시가 있다

→ 터미널에 입력하면 접속이 가능하다.. 하지만!

 

이런식으로 경고가 뜬다.. "WARNING : UNPROTECTED PRIVATE KEY FILE!"

 

이는 최초 접속시 AWS EC2의 pem 파일 권한변경을 하지 않아서이다!

 

$ chmod 400 [나의 키페어 이름].pem
$ 다시 연결

 

이렇게 권한 변경을 하고 다시 접속하면 성공이다! → 터미널에서 ubuntu@ip -~~ 이렇게 뜨면 된다.

 

5 ) Nginx 설치

 

$ sudo apt update
$ sudo apt install nginx

 

우선 우분투 패키지를 모두 업데이트 해준 후 nginx를 설치해주자.

 

이 후에 EC2 인스턴스의 퍼블릭 IPv4 주소로 접속하면 Nginx가 구동되고 있음을 확인할 수 있다.

 

6 ) MySQL 설치

$ sudo apt-get install mysql

 

7 ) PHP 설치

$ sudo apt install php-fpm php-mysql
$ php -v

php 설치 후 Ngnix의 기본 경로인 var/www/html로 접근하여 index.php파일을 작성해준다.

→ IP주소로 접근

 

$ vi index.php

<?php
phpinfo();
?>

 

그리고 브라우저에서 (퍼블릭 IP주소)/index.php로 접속한다. 그러면 index파일이 다운로드 되는 것을 볼 수 있다.

이는 아직 PHP와 Nginx가 연동되지 않았기 때문에 발생하는 현상이다.

 

8 ) Nginx 기본 설정

 

다음 경로로 이동해서 해당 파일을 아래 사진과 같이 편집해준다. 그 후 재시작 해주자!

 

$ sudo vi /etc/nginx/sites-available/default
# 편집 이후 재시작
$ sudo service nginx restart

nginx를 재시작하고 <퍼블릭ip주소/index.php> 로 접속하려고 했음에도 불구하고 502 gateway가 발생하였다.

그래서 아래의 블로그를 참조하여 에러를 고쳐보았다.

 

1. /etc/nginx/sites-available/default 경로에서

  • nginx 설정 파일에서 PHP를 처리하는 부분의, fastcgi-pass 값을 확인하여 PHP-fpm sock 파일이 정상적으로 위치해 있는지 확인

2. /ect/php/7.2/fpm/pool.d/www.conf 경로에서

  • PHP-fpm 설정 파일에서 listen 부분의 sock 파일이 경로가 동일한지 확인

https://blog.gomgom.net/502-bad-gateway-solution-on-nginx-php_fpm/

 

nginx + PHP-fpm에서 502 Bad gateway 에러 해결법 총정리

nginx와 PHP-fpm 사용 중, 간혹 또는 수시로 502 bad gateway 에러가 발생하는 경우의 해결책에 대해 설명하는 글입니다.

blog.gomgom.net

 

수정 이후 다시 재시작해주자!

$ sudo service nginx restart
$ sudo service php7.0-fpm restart

 

다시 접속하면 성공!

 

댓글