본 실습은 AWS EC2 인스턴스 환경에서 진행된다.
1. MySQL 패키지 설치
sudo apt-get install mysql-server
2. PHP 패키지 설치
sudo apt install php-fpm php-mysql
php-fpm은 PHP FastCGI Process Manager의 약자이다. FastCGI는 CGI보다 좀 더 빠른 버전이라고 할 수 있다.
CGI는 요청할 때마다 새로운 프로세스 생성하여 구동하는 반면, FastCGI는 요청할 때마다 이미 생성한 프로세스를 재활용하는 방법을 사용한다. 때문에 처리가 빠르다는 장점이 있다.
apache의 경우에는 apache용 php 모듈이 자체적으로 처리하게 되어 있지만, nginx에는 그러한 모듈이 없기 때문에 php-fpm를 따로 설치해서 nginx와 연동시켜야 한다. 이것이 nginx와 php를 연동하는 이유이다.
3. index.php 파일 생성
nginx의 기본 경로인 var/www/html로 접근하여 index.php 파일을 생성한다.
sudo vi /var/www/html/index.php
index.php의 파일 내용은 아래와 같이 작성한다.
4. index.php로 접속
브라우저를 열어 [퍼블릭 IPv4 주소]/index.php로 접속한다.
그러면 아래와 같이 index.php 파일이 다운로드된다. 이는 Nginx와 PHP가 아직 연동되지 않아 발생하는 현상이다.
5. Nginx 기본 설정
/etc/nginx/sites-available/default 파일로 접근하여 PHP 부분 주석을 해제한다.
sudo vi /etc/nginx/sites-available/default
6. Nginx 재시작
sudo service nginx restart
7. [퍼블릭 IPv4 주소]/index.php로 접속
⚠️ 만약 7) 과정 도중 아래와 같은 이슈가 발생한다면
위와 같은 이슈는 /etc/nginx/sites-available/default 경로에서 fastcgi-pass 값이 /run/php에 위치하는 php-fpm sock 파일의 이름과 다를 경우 발생한다.
따라서 실제 파일 명으로 수정하고 다시 Nginx를 재시작한다.
이후에는 정상적으로 접근이 가능하다.
'DevOps > AWS' 카테고리의 다른 글
[AWS] 스프링 부트 프로젝트 배포 자동화하기 (1) (0) | 2023.10.31 |
---|---|
[AWS] 탄력적 IP(Elastic IP) 설정하기 (0) | 2023.10.27 |
[AWS] SSH를 통한 EC2 인스턴스 외부 접속 (0) | 2023.09.19 |
[AWS] Nginx 패키지 설치 & http 외부 접속 (0) | 2023.04.21 |
[AWS] AWS EC2 인스턴스 생성하기 (0) | 2023.04.21 |