바위 뚫는중

[AWS] EC2 인스턴스에 Nginx, MySQL, PHP (LEMP stack) 서버 환경 구축 - 2. Nginx, MySQL, PHP 패키지 설치 후 http 외부 접속 본문

Server

[AWS] EC2 인스턴스에 Nginx, MySQL, PHP (LEMP stack) 서버 환경 구축 - 2. Nginx, MySQL, PHP 패키지 설치 후 http 외부 접속

devran 2022. 10. 18. 17:30
반응형

이전글을 참고하여 생성한 ec2에 ssh로 접속하여 진행!

https://dev-raeun.tistory.com/18

 

[AWS] EC2 인스턴스 생성하여 Nginx, MySQL, PHP (LEMP stack) 서버 환경 구축 - 1. EC2 인스턴스 생성

✅ AWS EC2 인스턴스 생성 AWS 회원가입 후 진행! https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#Home: 애플리케이션 및 OS 이미지 선택 Ubuntu 선택 인스턴스 유형 선택 프리..

dev-raeun.tistory.com

👩🏻‍💻목차

Nginx, MySQL, PHP 패키지 설치 후 http 외부 접속

- Nginx 설치, http 외부 접속 허용

- MySQL 설치 후 접속 (+MySQL 완전삭제 후 재설치하는 법 )

- PHP 설치, Nginx와 연동

 

🤖 개발환경

AWS ec2 - ubuntu

 

대부분이 로컬에서 진행하는거랑 매우 유사하지만, 많이 시도해볼수록 좋다고 생각한다. 여러번해도 꾸준히 에러가 나는 MySQL,,후후

 Nginx, MySQL, PHP 패키지 설치 후 http 외부 접속

1️⃣ Nginx 설치, http 외부 접속 허용

Nginx 설치

sudo apt update 
sudo apt upgrade
sudo apt install nginx

인스턴스 보안 그룹 설정 후, http 외부 접속 허용

내 인스턴스에서 보안그룹을 클릭

인바운드 규칙 편집 클릭

인바운드 규칙 추가를 누르고 유형 → HTTP 소스 → Anywhere-IPv4 추가

내 규칙 확인

Http 접속 및 Nginx 설치 확인

퍼블릭 IPv4로 접속하여 페이지 확인

2️⃣ MySQL 설치 후 접속

MySQL 설치

sudo apt-get update
sudo apt install mysql-server

MySQL 기본설정

sudo ufw allow mysql #외부 접속 기능 설정 (3306 port 오픈)
sudo systemctl start mysql # MySQL 실행
sudo systemctl enable mysql # Ubuntu 재시작시 MySQL 자동 재시작

MySQL root 계정으로 접속

sudo /usr/bin/mysql -u root -p

MySQL 기본명령어

//mySql 버전 확인
mysql> SHOW VARIABLES LIKE "%version%";

//패스워드 설정 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';

//User 정보 확인
mysql> SELECT User, Host, authentication_string FROM mysql.user;

//hyperdata 이름을 가진 database 추가
mysql> CREATE DATABASE hyperdata;

//database 리스트 확인
mysql> SHOW DATABASES;

//test라는 계정 생성
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY '비밀번호';

//해당 작업을 반영 
mysql> FLUSH PRIVILEGES;

//test계정에서 hyperdata DB를 사용할 수 있도록 권한 부여 
mysql> GRANT ALL PRIVILEGES ON hyperdata.* to test@localhost;

//해당 작업을 반영 
mysql> FLUSH PRIVILEGES;

// test계정이 localhost에서 어떤 권한을 가지는지 확인 
mysql> SHOW GRANTS FOR 'test'@'localhost';

//다른 서버에서 접속하고 싶다면
mysql > CREATE USER 'root'@'192.168.6.51' IDENTIFIED BY '비밀번호';
mysql > GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.6.51' WITH GRANT OPTION; 
mysql > FLUSH PRIVILEGES;

이게 한번에 되는 사람은 조금 드물더군요,,

수많은 에러를 겪다가 완전삭제후 재설치를 n번 반복한 뒤에야 진정한 MySQL을 맛볼 수 있었습니다! 

❗️MySQL 완전삭제 후 재설치하는 법

sudo apt-get remove --purge mysql*
dpkg -l | grep mysql #mysql 관련 파일 확인
sudo apt-get remove --purge 파일명 #남은거 다 삭제
sudo apt-get install mysql-server

3️⃣ PHP 설치, Nginx와 연동

PHP 설치

Nginx에선 php-fpm을 반드시 설치해야함

sudo apt install php-fpm php-mysql

index.php 생성

cd /var/www/html/ #Nginx의 기본경로로 이동
sudo vi index.php #index.php 생성

#index.php에 다음과 같이 입력
<?php
phpinfo();
?>

Nginx 기본 설정 변경

dpkg -l | grep php #php-fpm의 버전확인해주기
vi /etc/nginx/sites-available/default #Nginx의 기본 설정 파일로 이동

다음과 같이 주석을 처리해주고, php 버전도 맞게 수정해준다

sudo service nginx restart #nginx 재시작

페이지 확인

http://내 퍼블릭 IP/index.php

퍼블릭 IP/index.php 로 접속하여 php 페이지 확인

성공적으로 된 것을 확인할 수 있음!

반응형