[부트캠프][2주차]AWS EC2에 Nginx, PHP, MySQL 서버 구축

이호석·2022년 6월 16일
0

부트캠프

목록 보기
5/11

이번 시간에는 AWS EC2에 Nginx, PHP, MySQL를 설치하려고 한다. 준비물은 EC2 인스턴스!
나는 Ubuntu 18.04 버전이다.

AWS EC2 접속

먼저 접속을 위한 도구로 WinSCP를 설치했다. 그냥 PuTTY를 사용해도 되지만, WinSCP는 사용자 컴퓨터에서 EC2로 파일 전송 기능이 있다.

EC2에 접속하려면 호스트 이름에는 EC2 인스턴스의 퍼블릭 IPv4 주소, 포트번호는 22번 그대로, 사용자 이름은 여기에서 인스턴스 AMI 따라 확인할 수 있다. 그런 다음 고급 -> 고급을 누르고 SSH -> 인증

이제 인스턴스 생성을 할 때 만들었던 개인키 파일을 선택하면 된다. 굳이 PuTTYgen을 켜서 pem파일을 ppk로 변환하지 않아도 된다. 여기에서 한번에 작업할 수 있다.

이 화면에서 파일 시스템을 GUI 환경으로 이용할 수도 있다. 우리는 빨간 네모 박스안의 버튼을 눌러 PuTTY로 들어간다.

1. Nginx 설치

sudo apt update
sudo apt install nginx

지난번 힘들게 Apache를 소스설치했던 것과는 다르게, 명령어 하나로 설치가 끝난다.

이제 브라우저 주소창에 EC2의 퍼블릭 IPv4 주소를 입력하면 되는데, EC2의 인바운드 규칙에 HTTP 접속을 허용해야 다음과 같은 화면을 볼 수 있다.

2. Mysql 설치

sudo apt install mysql-server
sudo mysql

Mysql에 접속을 성공했다면 암호 인증을 위해 비밀번호를 설정해야한다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

이제 mysql에 접속하고 싶다면

mysql -u root -p

이런식으로 접근해야 한다.
외부에서 Mysql에 접속을 허용하게 하려면

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';

위 명령어를 사용하면 된다!

3. PHP 설치

sudo apt install php-fpm php-mysql

지난번 Apache때와는 다르게 Nginx와 PHP의 연동은 php-fpm을 설치해줘야 한다.

cd /var/www/html
ls

위 명령어를 통해서 index.nginx-debian.html가 확인되면, 설치가 잘 된것이다.
우리는 화면에 phpinfo를 띄우고 싶으므로

sudo vi index.php
<?php
phpinfo();
?>

이러고 바로 보이면 좋겠지만 php와 Nginx의 연동을 위해 따로 설정해야 할 것이 있다.

php -v

먼저 php 버전을 확인해 주고

sudo vi /etc/nginx/sites-available/default
	#location ~ \.php$ {
    #       include snippets/fastcgi-php.conf;
    #
    #       # With php-fpm (or other unix sockets):
    #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    #       # With php-cgi (or other tcp sockets):
    #       fastcgi_pass 127.0.0.1:9000;
    #}

파일을 보다보면 위와 같이 php부분이 주석처리가 되어있는데 이 부분을 아까 본 php버전에 따라서 아래와 같이 변경한다. (Ubuntu 18.04는 php7.2이다.)

	location ~ \.php$ {
    #      include snippets/fastcgi-php.conf;
    #
    #       # With php-fpm (or other unix sockets):
           fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    #       # With php-cgi (or other tcp sockets):
    #       fastcgi_pass 127.0.0.1:9000;
    }
sudo service nginx restart

Nginx를 다시 시작해주고
브라우저 주소창에 [퍼블릭 IPv4 주소/index.php]를 입력하면

위와 같은 화면을 볼 수 있다.
설치 완료!

0개의 댓글