저번에 올렸던 포스터와 다르게 이번엔 apche2 대신 nginx를 활용한 웹서버 구축이다.
apache2에서 nginx로 변한것 말고는 크게 바뀌지 않아 겹치는 내용도 많다.
apache2를 활용한 APM서버 구축은 아래있는 이전 포스터를 봐주면 될거 같다.
https://velog.io/@e3hope/docker-compose%EB%A1%9C-APM%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0
docker pull <이미지>:<버전>
docker pull nginx docker pull php:7.4-fpm docker pull mysql:5.7
docker 이미지를 실행시켜주는 docker-compose.yml파일을 아래와 같이 작성한다.
version: '3.9'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "8000:80"
volumes:
- ./Project:/var/www/html #프로젝트 경로
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf #nginx 설정 파일
mysql:
image: mysql:5.7
container_name: mysql
restart: unless-stopped
tty: true
ports:
- "3306:3306"
environment:
MYSQL_HOST: localhost
MYSQL_DATABASE: dbname #디비명
MYSQL_USER: user #사용자명
MYSQL_PASSWORD: password #사용자비밀번호
MYSQL_ROOT_PASSWORD: password #루트계정비밀번호
SERVICE_TAGS: dev
SERVICE_NAME: mysql
php:
image: php:7.4-fpm
container_name: php
volumes:
- ./Project:/var/www/html #프로젝트 경로
ports:
- "9000:9000"
command:
- /bin/sh
- -c
- |
echo "security.limit_extensions = .php .phtml .php3 .php4 .php5 .html .htm" >> /usr/local/etc/php-fpm.d/www.conf
php-fpm
nginx의 default.conf파일을 수정한다.
파일을 작성한 경로에 nginx/default.conf을 생성후 작성한다.
server {
listen 80;
index index.php index.htm index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;
location ~ \.(php|html|htm)$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
작성이 완료가 되었으면 도커를 실행해 준다.
docker-compose up --build # 첫 실행 docker-compose up -d # 추후 실행
docker-compose down