AWS 서버 구축 - Nginx, Mysql, php 패키지 설치

김민준·2021년 11월 28일
0

라이징캠프 2주차

목록 보기
3/8
post-custom-banner

저번 시간에 Wiscp와 putty로 AWS에서 생성한 서버로 접속하는 것까지 알아봤다. 이번 시간에는 Nginx, Mysql, php를 패키지 설치 해 볼 것이다.


Nginx 설치

$ sudo apt update
$ sudo apt install nginx

위의 코드로 nginx를 설치하면 해줘야 할 일이 있다. AWS에서 우리가 만든 서버는 SSH프로토콜 밖에 받지 못하므로 외부에서 접속하는 것이 불가능하다. 인바운드 규칙에 HTTP도 추가해서 연결해 줘야 한다.

보안그룹->인바운드 규칙 편집 -> 규칙 추가 -> 유형:HTTP -> 소스: anywhere 로 설정하고 규칙을 저장 한다.

이제 검색창에 인스턴스의 IP주소를 입력하면 어떤 위치에서도 80번 포트로 접근을 허용했기 때문에 접속에 성공한 것을 볼 수 있다.


Mysql 설치

$ sudo apt install mysql-server
$ sudo mysql
$ sudo mysql_secure installation


코드 마지막 줄은 비밀번호와 보안설정을 해주는 명령어이다.
마지막 줄 명령어를 입력하면 총 5가지의 질문이 나온다.

  • VALIDATE PASSWORD PLUGIN을 사용할 것인가? : 사용한다고 설정하면 설정하고 싶은 보안등급의 강도가 나온다. 0,1,2 중 난 1을 선택했고, 선택한 보안등급에 따른 비밀번호를 설정해준다.
  • Anoymous User을 remove 할 것인가? : Y
  • 외부에서 root계정으로 접근 할 것인가? : Y
  • TestDB를 remove 할 것인가? : Y
  • privileges table을 reload 할 것인가? : Y


완료하면 위에 사진처럼 정상 작동 되는 것을 볼 수 있다.


php 설치

$ sudo apt install php-fpm php-mysql 

여기서 php-fpm은 php와 nginx를 서로 연동시킬 때 필요한 것이라고 한다.

$ cd /var/www/html
$ sudo vi phpinfo.php

<?php
phpinfo();
?>
$ sudo service nginx restart

phpinfo.php 파일 저장 후 nginx를 재시작, 검색창에 인스턴스 IP주소/phpinfo.php를 입력했지만 아무 창도 뜨지 않았다. 찾아보니 nginx와 php는 연동시킬 때 nginx의 기본 설정파일에 들어가서 수동으로 설정해주어야 한다고 한다.

$ cd /etc/nginx/sites-available
$ sudo vi default


위에 첨부한 코드대로 /etc/nginx/sites-availalbe/default로 들어와서 연다. 위의 사진은 내가 바꾼 다음 캡쳐한 사진이다. 원래 주석처리가 되어있는 부분을 사진처럼 풀어준다. 수정한 파일을 저장하고 nginx를 재시작하면 위의 사진과 같이 인스턴스 IP주소/phpinfo.php의 주소로 정상 작동하는 것을 볼 수 있다.

profile
기록하는 개발자가 되자
post-custom-banner

0개의 댓글