nginx란?
nginx는 아파치와 같은 웹서버로, 아파치에 비해서 동시접속 처리에 유리합니다. 그러나 아파치의 경우 다양한 모듈을 활용할 수 있어, php 모듈도 직접 적재할 수 있는데, 이에 비해 nginx는 모듈이 많지 않다고 합니다.
nginx와 php-fpm을 함께 사용하는 이유
php-fpm은 FastCGI의 하나로, 웹서버와 외부 프로그램의 상호작용을 도와주는 프로토콜입니다. php-fpm을 이용하면 동적인 웹 페이지를 구현할 수 있습니다.
nginx의 경우, 아파치와는 다르게 따로 php-fpm을 설치하고 연동시키는 과정이 필요합니다.
도커에서 nginx와 php-fpm 연동하기
debian:buster를 기반으로 진행합니다.
docker run -it -p 80:80 debian:buster
nginx와 php-fpm 설치
apt-get install -y nginx
apt-get install -y php-fpm
/etc/nginx/sites-available/default 파일의 주석을 지워, 다음과 같이 수정합니다.
.
.
.
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
.
.
.
그리고 아래 명령어를 사용하면 php-fpm을 실행하고 상태를 확인할 수 있습니다. 여기서 php7.3-fpm의 버전이 올바른지 주의해야 합니다.
service php7.3-fpm start
service php7.3-fpm status
이제 테스트용 php 파일을 생성하여 /var/www/html/에 넣어주면 제대로 연동되었는지 확인할 수 있습니다.
<?php phpinfo(); ?>
/etc/nginx/sites-available/default 파일의 index에도 .php 파일을 추가하셔야 합니다. 파일 수정 후에는 nginx를 재실행합니다.
반응형
'42Seoul > 웹서버' 카테고리의 다른 글
CGI 스크립트의 환경변수 (0) | 2021.05.16 |
---|---|
HTTP 헤더에 따른 콘텐츠 협상 (Content negotiation) (0) | 2021.05.16 |
docker run시 컨테이너 내의 파일 수정하기(환경변수 + sed명령어) (0) | 2020.11.01 |
Dockerfile을 작성하고 Docker 실행하기 (1) | 2020.10.20 |