[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

     

    다시 접속하면 성공!

     

    댓글