Skip to content
Thuan Bui's Blog
Go back

Cài đặt WordPress chạy trên nền Caddy Server sử dụng Docker Compose

Updated:

Sau một thời gian dài thiết lập WordPress trên nền OpenLiteSpeed server sử dụng Docker Compose, gần đây mình đã chuyển dần tất cả các website WordPress đang quản lý chuyển qua hoạt động trên nền Caddy Server.

https://thuanbui.me/caddy-server

Đó là lý do của bài viết hôm nay: hướng dẫn cách cài đặt WordPress + MariaDB chạy trên nền Caddy Server sử dụng Docker Compose.

I. Yêu cầu chuẩn bị

Để thực hiện theo thao tác trong bài, bạn cần chuẩn bị hệ thống như sau:

II. Cài đặt WordPress

Tạo thư mục mới với tên gọi wordpress, sau đó tạo file compose.yml trong thư mục này

Terminal window
mkdir ~/wordpress
cd ~/wordpress
nano compose.yml

Nhập vào nội dung sau

services:
wordpress:
image: wordpress:fpm-alpine
container_name: wordpress
restart: always
depends_on:
- db
volumes:
- ./html:/var/www/html
- ./custom.ini:/usr/local/etc/php/conf.d/custom.ini
env_file: .env
db:
image: mariadb:10.11.6-jammy
restart: always
volumes:
- ./mysql:/var/lib/mysql
env_file: .env

Tạo thêm file .env

Terminal window
nano .env

Và nhập vào nội dung sau, và nên thay đổi nội dung các thông số sau dấu = để tối ưu bảo mật.

## MYSQL ##
MYSQL_USER=siteuser
MYSQL_PASSWORD=sitepassword
MYSQL_DATABASE=wordpress
MYSQL_ROOT_PASSWORD=rootpassword

Kích hoạt WordPress

Terminal window
docker compose up -d

III. Cấu hình Caddy làm Reverse Proxy

Hướng dẫn trong phần này chỉ áp dụng khi bạn cài đặt Caddy bằng Docker theo hướng dẫn ở đây.

1. Kết nối Caddy vào cùng network với WordPress

Kiểm tra xem network hiện tại của container WordPress là gì bằng lệnh

Terminal window
docker container inspect wordpress

Ở phần Networks ở cuối cùng, bạn sẽ thấy tên network wordpress_default

"Networks": {
"wordpress_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"wordpress",
"336a69c38146"
],
"MacAddress": "02:42:ac:1a:00:03",
"NetworkID": "8a7f38c640194a8fe70dc0922f4120ee4c2d72a352ec63a3fb412da4e41c441a",
"EndpointID": "27a946ef2774f455b70c3b062053aa93f30c12519af1f4b939a360c951e56899",
"Gateway": "172.26.0.1",
"IPAddress": "172.26.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DriverOpts": null,
"DNSNames": [
"wordpress",
"336a69c38146"
]
}
}
}
}
]

Chỉnh sửa file compose.yml của Caddy, thêm đoạn sau vào cuối file. Mục đích nhằm kết nối container caddy vào cùng network với container wordpress

networks:
default:
name: wordpress_default
external: true

3. Khai báo volumes

Ngoài ra, cần chỉnh sửa lại phần volumes trong file compose.yml, thêm vào dòng sau

- ../wordpress/html:/var/www/html

File compose.yml sau khi chỉnh sửa sẽ giống như sau

services:
caddy:
image: caddy:2.7.6-alpine
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy_data:/data
- ./caddy_config:/config
- ../wordpress/html:/var/www/html
networks:
default:
name: wordpress_default
external: true

3. Cập nhật Caddyfile

Thêm đoạn sau vào Caddyfile, thay domain.com thành tên miền của bạn.

domain.com {
root * /var/www/html
encode zstd gzip
# Serve WordPress PHP files through php-fpm:
php_fastcgi wordpress:9000
# Enable the static file server:
file_server {
precompressed gzip
}
header / {
X-Frame-Options "SAMEORIGIN"
X-Content-Type-Options "nosniff"
}
}

4. Khởi động lại Caddy

Khởi động lại Caddy bằng lệnh sau

Terminal window
docker compose up -d --force-recreate

Nếu tất cả trơn tru, bạn có thể truy cập vào địa chỉ https://domain.com để cài đặt WordPress.

Vậy là xong. Chúc bạn cài đặt thành công!


Nếu cảm thấy việc cài đặt thủ công quá rối rắm, bạn có thể tham khảo cài đặt WordPress bằng công cụ wordpress-caddy-docker theo hướng dẫn dưới đây

https://thuanbui.me/wordpress-caddy-docker


Share this post on:

Previous Post
Cài đặt Xpenology DSM 7.2 sử dụng RR Loader (Redpill Recovery Loader)
Next Post
Dockge - Ứng dụng quản lý Docker phù hợp cho homelab