![Docker Wordpress(nginx + php-fpm + myadmin)설치 1 워드프레스](https://chaehui.kr/wp-content/uploads/2022/11/워드프레스.jpg)
![Docker Wordpress(nginx + php-fpm + myadmin)설치 2 워드프레스 1](https://chaehui.kr/wp-content/uploads/2022/11/워드프레스-1.jpg)
[1] 사전 준비사항.
서버와 도메인은 미리 준비되어 있어야 합니다.
아래의 설정은 자신의 서버 상황에 맞게 위치를 변경하세요.
워드프레스 설치 디렉토리 : /home/yourid/wp
워드프레스 컨테이너 이름 : wordpress
워드프레스 데이터베이스 컨테이너 이름 : wpdb
워드프레스 데이터베이스 호스트 : wpdb
워드프레스 데이터베이스 사용자명 : wordpress_dbname
워드프레스 데이터베이스 이름 : wordpress_dbid
워드프레스 데이터베이스 비밀번호 : yourpasswd
nginx 컨테이너 이름 : wpserver
서버도메인 : yourdomain.com
워드프레스 웹페이지 접속 포트 : 82
phpmyadmin 웹페이지 접속 포트 : 83
[2] nginx 사이트 설정 파일을 작성한다.
$sudo mkdir -p /home/yourid/wp/nginx/conf
$sudo nano /home/chaehui/wp/nginx/conf/nginx.conf
server { listen 80; listen [::]:80; server_name yourdomain.com wwww.yourdomain.com; #필요시 도메인 부분 변경 할 것. index index.php index.html index.htm; root /var/www/html; location ~ /.well-known/acme-challenge { allow all; root /var/www/html; } location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass wordpress:9000; #컨테이너 이름을 정확히 입력합니다. fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } location ~ /\.ht { deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; allow all; } location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { expires max; log_not_found off; } }
[3] php.ini 파일 생성 후 환경변수 값 지정하기
$sudo mkdir -p /home/yourid/wp/php
$cd /home/yourid/wp/php
$sudo nano php.ini
short_open_tag = On memory_limit = 512M #설치후에 서버 성능이 떨어지면 이 값을 적절히 변경하세요. cgi.fix_pathinfo = 0 upload_max_filesize = 1024M #업로드 최대 파일 크기를 지정할 수 있습니다. post_max_size = 1025M #첨부파일 최대 파일 크기를 지정할 수 있습니다. max_execution_time = 3600 #설치후에 서버 성능이 떨어지면 이 값을 적절히 변경하세요. date.timezone = Asia/Seoul expose_php = off
[4] docker-compose.yml 파일 작성
$sudo nano /home/yourid/wp/docker-compose.yml
services: wpdb: image: mariadb:latest container_name: wpdb restart: unless-stopped environment: - MYSQL_DATABASE=wordpress_dbname #워드프레스 데이터 베이스 이름을 지정해준다. - MYSQL_ROOT_PASSWORD=yourpasswd #워드프레스 데이터 베이스 비밀번호를 지정해준다. - MYSQL_USER=wordpress_dbid #워드프레스 데이터 베이스 사용자명을 지정해준다. - MYSQL_PASSWORD=yourpasswd #워드프레스 데이터베이스 비밀번호를 지정해준다. volumes: - /home/yourid/wp/db:/var/lib/mysql command: '--default-authentication-plugin=mysql_native_password' networks: - wp-network wordpress: depends_on: - wpdb image: wordpress:php8.0-fpm-alpine container_name: wordpress restart: unless-stopped environment: - WORDPRESS_DB_HOST=wpdb:3306 - WORDPRESS_DB_USER=wordpress_dbid #위에서 지정한 워드프레스 데이터 베이스 사용자명을 입력한다. - WORDPRESS_DB_PASSWORD=yourpasswd #위에서 지정한 워드프레스 데이터베이스 비밀번호를 입력한다. - WORDPRESS_DB_NAME=wordpress_dbname #위에서 지정한 워드프레스 데이터 베이스 이름을 입력한다. volumes: - /home/yourid/wp/html:/var/www/html - /home/yourid/wp/php/php.ini:/usr/local/etc/php/php.ini networks: - wp-network wpserver: depends_on: - wordpress image: nginx:alpine container_name: wpserver restart: unless-stopped ports: - "82:80" #자신의 서버 상황에 맞게 포워딩하세요. volumes: - /home/yourid/wp/html:/var/www/html - /home/yourid/wp/nginx/conf:/etc/nginx/conf.d networks: - wp-network phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin ports: - "83:80" #자신의 서버 상황에 맞게 포워딩하세요. environment: - PMA_HOST=wpdb restart: always depends_on: - wpdb networks: - wp-network volumes: wordpress: db: networks: wp-network: driver: bridge
[5] docker-compose 명령으로 설치.
$sudo docker-compose up -d
[6] 웹페이지로 접속하여 확인
1. 워드프레스 설치 마무리
http://yourdomain.com:82
2. phpmyadmin 접속확인
로그인 id와 비번은 위에 docker-compose.yml에서 지정한 것을 사용합니다.
http://yourdomain.com:83
Views: 18