안녕하세요. 코이킹입니다.
이번 포스트에서는 PHP를 설치후 Nginx와 연동하는 과정에 대해서 정리하려합니다.
※ 실습 환경의 버젼정보
서버 : AWS-EC2
OS : Amazon Linux 2 AMI
Nginx : nginx/1.20.0 (amazon-linux-extras를 통해 설치) https://koiking.tistory.com/54
php : 5.4.16 (yum통해 설치)
php-fpm : 5.4.16 (yum통해 설치)
※ 포스트의 목적
이 포스트에서 설명하고자하는 Nginx - PHP연동 설정은 php를 활용한 테스트 웹 페이지를 만들어 사용하고자 하는게 목적이므로 PHP언어를 사용한 본격적인 개발환경 구축과는 거리가 멀다고 생각합니다.
1. PHP설치
$ which php # php가 이미 설치되어 있는지 확인
$ sudo yum -y install php # php 설치
$ php --version
PHP버젼이 출력되면 제대로 설치된 것입니다.
2. php-fpm설치
Apache웹서버의 경우 설치하는것만으로 PHP를 동작시킬 수 있지만,
Nginx는 설치하는 것만으로는 PHP를동작시킬 수 없으므로, PHP를 동작시키기 위한 프로그램을 추가로 설치해주어야합니다.
이때 추가로 설치해주어야하는 프로그램이 php-fpm입니다.
$ which php-fpm # 이미 설치되어 있는지 확인
$ sudo yum -y install php-fpm # 설치
3. 설정수정하기
Nginx + PHP의 연동방식은 ①포트를 사용하는 방식, ②유닉스 소켓을 사용하는 방식이 있습니다.
이 포스트에선 ①포트를 사용하는 방식으로 연동하려 합니다.
1) php-fpm의 설정수정하기
php-fpm의 설정파일에서 user와 group의 기본값(apache)을 nginx로 변경합니다.
※ 제 경우 기존 설정을 주석처리하고 user와 group부분을 추가했습니다.
$ sudo vi /etc/php-fpm.d/www.conf
위 커맨드로 설정파일을 열어서 아래의 화면과 같이 설정해주시면 됩니다.
2) nginx의 설정추가
Nginx와 PHP를 연동하기위한 설정파일을 추가해 줍니다.
원래의 Nginx의 설정파일인 "/etc/nginx/nginx.conf"에서 추가된 설정파일을 읽어와서 설정을 반영하므로
기존의 설정을 건드릴 필요는 없습니다.
$ sudo vi /etc/nginx/default.d/nginx-php.conf
위 커맨드로 설정파일을 생성후 아래의 내용을 기재합니다.
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
4. php연동 확인
1) 동작 확인용 PHP파일 작성
$ sudo vi /usr/share/nginx/html/index.php
2) Nginx와 php-fpm을 실행
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm
$ ps -ef | grep "nginx\|php-fpm" # 프로세스가 존재하면 제대로 실행된 것
3) 웹 브라우저를 통해 서버에 접속해서 PHP 연동확인
${IP주소}/index.php 를 웹 브라우저의 주소창에 입력하신후 페이지를 이동하시면 작성한 PHP파일의 내용이 출력되는 것을 확인할 수 있습니다.
※ 실습을 완료한 후엔 AWS콘솔에 접속해 보안그룹을 수정하여 80번 포트를 막아둡니다.
서비스 운영을 하신다면 당연히 포트를 열어두셔야 겠지만 공부목적이시라면 제 생각엔 보안상 굳이 포트를 열어둘 필요가 없을 것 같습니다.
'미들웨어 > 환경설정' 카테고리의 다른 글
【Nginx】Amazon Linux 2 AMI에서 Nginx설치하기 (0) | 2021.10.29 |
---|
댓글