aws 가입을 완료하고
EC2 Ubuntu 중에 프리티어 가능한 22.04와 20.04 중에 20.04 선택
인스턴스 유형은 프리티어인 t2.micro
새 키 페어 생성하고 (난 window니까 ppk) 저장을 해준다.
보안그룹은 ssh 일단은 모든 위치에서 열어두고
스토리지 나 고급 세부정보는 기본으로 되어있는 설정 그대로 가져감
인스턴스 생성 전에 관련 문구도 확인 하고 인슨턴스 시작을 눌러 생성!
첫 해에는 무료 계층 AMI에서 매월 750시간의 t2.micro(또는 t2.micro를 사용할 수 없는 지역에서는 t3.micro) 인스턴스 사용, EBS 스토리지 30GiB, 200만 IO, 1GB 스냅샷 및 100GB의 인터넷 대역폭이 포함됩니다.
강의영상에서는 WinSCP 사용해서 EC2 접근 (내가 써본건 putty만 인데 WinSCP 는 FTP, SFTP 를 gui통해 쉽게 할 수있는 프로그램. 그래서 putty로 진행할까 하다가 (putty에서도 ftp 가능, 근데 전에 해봤을 때 방화벽열고 암튼 절차가 복잡했었음 ) 그냥 말 듣기로했음
(https://winscp.net/eng/download.php) 에서 설치 (WinSCP 5.21) (기본 설정 그대로 가져감 )
프로토콜 SFTP 선택
호스트 이름에 EC2 퍼블릭 IPv4 주소 입력
포트번호 자동할당 22로 그대로 두고
사용자 이름 ubuntu 비번없음
고급 버튼 누르고 → ssh 메뉴 → 인증 메뉴 → 개인키 파일에 아까 받은 키페어 찾아서 입력
다 ok 누르고 로그인
아이콘 메뉴 중에 putty 창 띄울 수 있느 것도 있음
sudo apt update
sudo apt install nginx
웹 브라우저에서 Ec2 ip주소 들어가보면 안뜬다 → EC2 가서 보안그룹→ 인바운드 규칙 편집
인바운드 규칙 처리 잘 됨
방화벽 관련 처리해준다 .
sudo ufw app list
sudo ufw allow 'Nginx HTTP'
sudo ufw status
sudo apt install mysql-server
sudo mysql_secure_installation
비번 설정하는데 문제가 생김
Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
putty 를 종료하고
sudo mysql
alter user 'root'@'localhost' identified with mysql_native_password by '비밀번호';
flush privileges ;
로 해결
sudo apt install php-fpm php-mysql
php 설치 확인 위해
cd /var/www/html/
ls
index.nginx-debian.html 가 기본적으로 있음
vi 명령어로 여기에 index.php 만들어주고 하단 내용 넣어줌
php와 ngnix를 연동을 해보자
cd /etc/nginx/sites-available/
sudo vi default
에 가서 아래 내용 주석 빼주기 (검은화면에 파랑글씨 게다가 작아서 잘안보임 ^^)
cd /var/www/html
sudo service nginx restart
에러가 난다.
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
sudo nginx -t
로 확인해본다. 내가 파일을 잘못건들였나보다. 다시/etc/nginx/sites-available/default 파일 가서 확인한다. 빨간 부분 주석을 안풀어줬군 . 풀어주고 다시 실행
잘 출력된다.
나는 workbench 가 깔려있기 때문에 workbench 이용하겠다. new connection 누르고
host 에 ec2 ip개방주소 넣고 username 과 password(아까 putty에서 입력한거) 입력
그리고 test connection 하면 당연히 안될것 (보안그룹 규칙 추가안했기 때문)
일단은 ec2 보안그룹에서 mysql 관련 인바운드 규칙을 다 열고
유저를 추가해준다 (root 로 해도되긴하는데 보안상 )
create user '사용자id'@'%' identified by '비밀번호';
grant all privileges on *.* to '사용자id'@'%';
-- Database 생성
create database risingCamp;
show databases;
exit
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
ec2에서 MySQL 외부 접속 허용 설정 bind-address를 127.0.0.1 에서 0.0.0.0으로 변경
mysql 재시작
sudo service mysql restart
접속 성공! 아까 만든 table도 있는 것 확인 완료
phpMyAdmin은 웹 기반 인터페이스를 통해 MySQL 및 MariaDB 서버를 관리하기 위한 오픈 소스 PHP 기반 도구
sudo apt update
sudo apt install phpmyadmin
설치 중 다음 과같은 화면 뜬다. 여기 ngnix가 없으므로 tab키 이용 ok로 가서 enter
비번 입력 등 잘 헀으나 아래 화면이 나왔음
mysql -u root -p
UNINSTALL COMPONENT "file://component_validate_password";
eixt
하고 다시 sudo apt install phpmyadmin 해준다.
심볼릭 링크 생성해주고 (바로가기)
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
아까 php 다운했을 때 사용했던 파일로 가서 44줄 맨 위뒤에 index.php; 추가해준다. wq로 나오고
sudo vi /etc/nginx/sites-available/default
sudo service nginx restart
웹 브라우저에서 ec2퍼블릭주소/phpmyadmin 로 요청 시 잘 출력된다.
로그인해도 잘 보임