AWS EC2에 Nginx, MySQL, PHP 설치하기

log·2021년 10월 16일
0

PuTTY

AWS EC2 서버에 PuTTY를 이용하여 접속할 것이다. PuTTY란 SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 동작하는 자유 및 오픈 소스 단말 애뮬레이터 응용 프로그램이다. 즉, 물리적으로 떨어져 있는 서버에 단말 장비를 통해서 원격으로 접속할 때 사용하는 가상 단말기이다.

키 페어 확장자 변환 (.pem -> .ppk)

PuTTYgen을 열어 키 확장자를 변환한다.
저장 위치 꼭 기억하고, 삭제하기 않기.

EC2 인스턴스 서버에 접속

AWS Elastic IP 주소 입력하면 된다. 포트는 SSH 포트 번호인 22.
변환한 키 페어를 추가한다.
세션 저장 후 Open 누르면 터미널이 켜짐!
이때 어떤 인스턴스를 설치했는지에 따라 사용자 이름이 달라진다.
나는 우분투여서 ubuntu

Nginx 설치

이제 EC2 인스턴스에 접근 가능하니 거기에 Nginx를 설치한다.

$ sudo apt update
$ sudo apt install nginx

Elastic IP를 주소창에 검색해 보면 Nginx가 잘 설치됐음을 알 수 있다.

MySQL 설치

$ sudo apt install mysql-server
$ sudo mysql_secure_installaion

여기까지 하면 여러 질문들이 나온다.
첫 번째 질문이 Validate Password PLUGIN 사용 유무인데 사용할 거라면 0~2 중에 입력하면 된다. 숫자가 높을수록 보안도 강화된다. 대신 비밀번호가 번거로워진다. 1은 특수문자, 영어, 숫자 조합인가 그렇다.
두 번째 질문이 Root 비밀번호 설정.
세 번째가 Anonymous User 삭제 유무.
네 번째 질문이 Root 계정 외부에서 접근 막을 건지.
다섯 번째 test DB 삭제할 건지.
마지막이 Privileges table reload.
다 Y로 했다.

Validate Password PLUGIN

처음에 1로 했다가 특수문자까지 사용해야 되고 귀찮아서 0으로 변경했다.
변경 방법은 다음과 같다.

mysql> show variables liek 'validate_password%';
mysql> set global validate_password.policy=LOW;

높이고 싶으면 MEDIUM으로 하든지 하면 된다.

root 계정

$ sudo mysql -u root -p

$ mysql> exit

root 비밀번호 설정 후 루트 계정으로 접속해 보려고 하는데 접속이 안 된다. 접속하기 위해서는 root 계정의 plugin인을 수정해 주어야 한다.

$ sudo mysql -u root -p

mysql> show databases; // 여러 스키마들이 보이는데
mysql> use mysql; // 이중에서 mysql 선택
mysql> SELECT user, authentication_string, plugin, host from user;

원래 이 root의 plugin이 auth_socket로 돼 있을 거다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES; 
// grant 테이블을 reload함으로써 변경 사항(사용자 추가, 삭제, 권한 변경 등) 즉시 반영

MySQL 설치 끝!

PHP 설치

$ sudo apt install php-fpm php-mysql

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

<?php
 phpinfo();
?>

수정했으면 esc 누르고 :wq! 입력해서 저장 후 나간다.

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


박스 부분 주석을 지우고, 맨 마지막 줄에 }(중괄호)를 추가하든지 91번 주석을 지우든지 한다.
줄 번호 보이게 하고 싶으면 :set number 적용하면 된다.

$ sudo service nginx restart

nginx 웹 서버 실행하고, EC2 인스턴스 주소로 들어간다.
ip/index.php

설치 끝!

0개의 댓글