wordpress部署教程(Ubuntu + Nginx + Docker Compose,支持 HTTPS)

WordPress 部署教程(Ubuntu + Nginx + Docker Compose,支持 HTTPS)

本教程介绍如何在 Ubuntu 22.04/24.04 上使用 Docker Compose 快速部署 WordPress,并通过 Nginx + HTTPS 提供安全访问。


🧰 第一步:准备工作

  • 服务器:Ubuntu 22.04 / 24.04
  • 域名zxc.abc.xyz(已解析到服务器 IP)

🔐 第二步:申请证书

1. 安装 Certbot 和 Cloudflare 插件

1
2
3
sudo apt update
sudo apt upgrade -y
sudo apt install -y certbot python3-certbot-dns-cloudflare

2. 创建并配置 Cloudflare API 令牌文件

1
2
sudo mkdir -p /etc/cloudflare
sudo micro /etc/cloudflare/cloudflare.ini

在 Cloudflare 上创建一个 API 令牌(使用权限受限的 API Token,而非全局 API Key)。

权限 (Permissions):

  • 区域 (Zone) → DNS → 编辑 (Edit)

区域资源 (Zone Resources):

  • 选择 包括 (Include) → 特定区域 (Specific zone) → abc.xyz

写入如下内容:

1
2
# Cloudflare API token used by Certbot
dns_cloudflare_api_token = "YOUR_CLOUDFLARE_API_TOKEN"

设置文件权限:

1
sudo chmod 600 /etc/cloudflare/cloudflare.ini

3. 为域名申请证书

1
sudo certbot certonly   --dns-cloudflare   --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini   -d zxc.abc.xyz   --agree-tos   --email [email protected]   -n

证书位置:

1
2
Certificate is saved at: /etc/letsencrypt/live/zxc.abc.xyz/fullchain.pem
Key is saved at: /etc/letsencrypt/live/zxc.abc.xyz/privkey.pem

🐳 第三步:安装配置 Docker 与 Docker Compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo apt update
sudo apt install -y ca-certificates curl gnupg

# 添加 Docker 官方源
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

docker --version
docker compose version

⚙️ 第四步:配置 WordPress

1
2
3
cd ~
mkdir -p ~/wordpress && cd ~/wordpress
touch docker-compose.yml

编辑 docker-compose.yml 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
version: '3.8'
services:
db:
image: mysql:8.0
container_name: wordpress_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: Yourpasswd
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: Yourpasswd
volumes:
- db_data:/var/lib/mysql

wordpress:
image: wordpress:latest
container_name: wordpress_app
restart: always
depends_on:
- db
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: Yourpasswd
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html

volumes:
db_data:
wp_data:

启动容器:

1
2
docker compose up -d
docker ps

此时访问 http://<服务器IP>:8000 即可看到 WordPress 安装界面。


🌐 第五步:配置主机 Nginx(非 Docker)

先确保使用系统自带的干净 Nginx 环境:

1
2
3
4
5
6
7
8
9
sudo rm /etc/apt/sources.list.d/nginx.list 2>/dev/null
sudo rm /etc/apt/sources.list.d/nginx*.list 2>/dev/null
sudo apt update
sudo systemctl stop nginx
sudo apt remove --purge -y nginx nginx-common nginx-full nginx-core
sudo rm -rf /etc/nginx
sudo apt autoremove -y
sudo apt install -y nginx
nginx -v

备份默认配置:

1
2
sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.bak
sudo micro /etc/nginx/sites-enabled/default

编辑内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
server {
listen 80;
server_name zxc.abc.xyz;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name zxc.abc.xyz;

ssl_certificate /etc/letsencrypt/live/zxc.abc.xyz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zxc.abc.xyz/privkey.pem;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}

验证并启动:

1
2
3
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx

✅ 最终访问


至此,WordPress + Docker + Nginx + HTTPS 部署完成! 🎉


wordpress部署教程(Ubuntu + Nginx + Docker Compose,支持 HTTPS)
http://example.com/2025/10/21/wordpress安装配置教程/
Author
John Doe
Posted on
October 21, 2025
Licensed under