기타/AWS

AWS에 Nginx, php, Mysql 구축

great_park 2021. 7. 4. 16:28
반응형

아마존 AWS 클라우드 서버를 빌려 서버 구축하기

클루우드 방식으로 서버를 구축 - 외부로 부터 서버를 빌려서 구축하는 방식. 물리적으로 서버 자체를 온전히 구축하는 온프레미스 방식보다 공간에 대한 확대와 축소가 자유롭기 때문에 인원 수용에 유연하다.

웹서버 : Nginx

Backend language : PHP

DBMS : MySQL

1. AWS 서비스 등록

  • EC2 서비스, 인스턴스 생성
    운영체제 : Ubuntu 18.04
    보안 그룹 구성 : SSH 프로토콜 사용, 이후 프로토콜 추가할 계획
    키페어 생성 - WinSCP에서 사용 예정
  • 시큐어 셸(Secure SHell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다.

2. WinSCP와 PuTTY 설정

SFTP(SSH)를 이용하여 AWS에서 생성한 인스턴스를 접근하기 위해 WinSCP, PuTTY를 이용.

  • WinSCP, PuTTY : Windows용 그래픽 유저 인터페이스(GUI) SFTP 및 FTP 클라이언트 프로그램. 원격 접속을 지원하는 SSH 프로그램

1. 인스턴스의 퍼블릭 IPv4 주소를 이용하여 WinSCP 로그인

2. 고급 설정- 인증- 개인키 파일- 인스턴스 생성시 받은 키파일 입력

  • PuTTY 원격 프로그램으로 터미널을 통해 원격으로 서버 관리 가능

3. Nginx, PHP, MySQL 설치

웹서버 : Nginx

Backend language : PHP

DBMS : MySQL

1. Nginx 설치

sudo apt update
sudo apt install nginx

웹서버 구축 완료

1-2. 외부 접속을 위한 포트포워딩

AWS의 인스턴스 - 보안 - 보안 그룹 링크 - 인바운드 규칙 편집 - HTTP 추가 (위치 무관) - 규칙 저장

80번 포트를 통해서 외부 접속 가능

2. MySQL 설치

sudo apt install mysql-server
sudo mysql

2-2. root 계정 비밀번호, 보안 설정

sudo mysql_secure installation

2-3. root 계정으로 mysql 접속

sudo mysql -u root -p

3. PHP 설치

sudo apt install php-fpm php-mysql

Apache 서버는 자체적으로 php와 연동해주는 모듈을 configure 파일로 자동으로 설정해주는 반면,
Nginx의 경우 php와 연동해주기 위해서 php-fpm을 따로 설치해주고
Nginx configure 파일에서 설정을 수동으로 설정해 주어야 한다.

cd /var/www/html
sudo vim index.php

vim 에디터에서 php파일 작성

<?php
phpinfo();
?>

3-2. Nginx와 php 연동

Nginx 기본 설정 파일 위치 : /etc/nginx/sites-available/default


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

vim 에디터로 주석을 해제하여 다음과 같이 수정

+) ubuntu 18.04 버전에 맞춰서 php 버전도 7.2로 수정

 

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	root /var/www/html;
	index index.php index.html index.htm;
	server_name; 
location / {
	try_files $uri $uri/ =404;
	}
	location ~ .php$ {
	include snippets/fastcgi-php.conf;
	fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
	}
}

수정사항 적용을 위해 restart

sudo service nginx restart

 

3-3. 연동 확인

 

외부에서 ec2인스턴스주소/index.php 로 접근하면 phpinfo 파일이 열리는 것을 확인할 수 있다.

 

 

반응형