在香港VPS上用Docker一键部署WordPress:Nginx + SSL全配置教程
Docker让WordPress的部署变得标准化、可复制,彻底告别"在这台服务器能跑,换一台就出问题"的困境。本文基于香港VPS,带你完成Docker + Nginx + SSL的完整WordPress部署。
一、环境准备
服务器要求
- 操作系统:Ubuntu 22.04 LTS(推荐)
- 配置:最低1核2G,建议2核2G以上
- 已完成域名解析,域名A记录指向服务器IP
安装Docker与Docker Compose
# 更新包管理器
apt update && apt upgrade -y
# 安装Docker
curl -fsSL https://get.docker.com | sh
# 安装Docker Compose插件
apt install docker-compose-plugin -y
# 验证安装
docker --version
docker compose version二、创建项目目录结构
mkdir -p /srv/wordpress/{nginx,certbot/conf,certbot/www}
cd /srv/wordpress三、编写 docker-compose.yml
version: '3.8'
services:
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: 你的数据库密码
MYSQL_ROOT_PASSWORD: 你的Root密码
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:php8.1-fpm
restart: always
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: 你的数据库密码
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
nginx:
image: nginx:alpine
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- wp_data:/var/www/html
- ./nginx:/etc/nginx/conf.d
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- wordpress
certbot:
image: certbot/certbot
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
volumes:
db_data:
wp_data:四、配置Nginx
创建文件 /srv/wordpress/nginx/wordpress.conf:
server {
listen 80;
server_name 你的域名 www.你的域名;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name 你的域名 www.你的域名;
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|webp)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
client_max_body_size 64M;
}五、申请SSL证书
# 先启动Nginx(仅HTTP模式)
docker compose up -d nginx
# 申请Let's Encrypt证书
docker compose run --rm certbot certonly \
--webroot \
--webroot-path=/var/www/certbot \
-d 你的域名 \
-d www.你的域名 \
--email 你的邮箱 \
--agree-tos \
--no-eff-email六、启动全部服务
docker compose up -d
# 查看运行状态
docker compose ps
# 查看日志
docker compose logs -f访问 https://你的域名,即可看到WordPress安装向导。
七、自动续签SSL证书
Let's Encrypt证书有效期90天,添加定时任务自动续签:
# 编辑crontab
crontab -e
# 添加以下行(每天凌晨3点检查并续签)
0 3 * * * cd /srv/wordpress && docker compose run --rm certbot renew && docker compose exec nginx nginx -s reload八、数据备份策略
# 备份数据库
docker compose exec db mysqldump -u root -p你的Root密码 wordpress > backup_$(date +%Y%m%d).sql
# 备份WordPress文件
docker run --rm -v wordpress_wp_data:/data -v $(pwd):/backup \
alpine tar czf /backup/wp_files_$(date +%Y%m%d).tar.gz /data九、总结
Docker部署WordPress的最大优势是:环境一致、迁移方便、版本可控。整个部署过程约30分钟,后续维护成本极低。IDC.Net的香港VPS默认安装Ubuntu 22.04,完美支持Docker,开箱即用。
版权声明:
作者:后浪云
链接:https://idc.net/help/442682/
文章版权归作者所有,未经允许请勿转载。
THE END
