Docker 安装 WordPress 并开启 HTTPS 完整指南

来自:素雅营销研究院

头像 方知笔记
2025年05月30日 13:29

前言

在当今互联网环境中,使用 HTTPS 加密连接已成为网站运营的基本要求。本文将详细介绍如何使用 Docker 快速部署 WordPress 并配置 HTTPS 安全连接,让您的网站在保证性能的同时也具备安全性。

准备工作

在开始之前,请确保您的系统已安装以下组件:

  1. Docker 最新版本
  2. Docker Compose
  3. 一个已解析到服务器 IP 的域名

步骤一:创建 Docker Compose 文件

首先创建一个 docker-compose.yml 文件,内容如下:

version: '3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html

nginx:
image: nginx:latest
ports:
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./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
command: certonly --webroot --webroot-path=/var/www/certbot --email your@email.com --agree-tos --no-eff-email -d yourdomain.com

volumes:
db_data:
wordpress_data:

步骤二:配置 Nginx 反向代理

创建 nginx.conf 文件,配置 HTTPS 反向代理:

events {
worker_connections 1024;
}

http {
server {
listen 443 ssl;
server_name yourdomain.com;

ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

location / {
proxy_pass http://wordpress:80;
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 $scheme;
}
}

server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
}

步骤三:获取 SSL 证书

  1. 首先启动 WordPress 和数据库服务:
docker-compose up -d db wordpress
  1. 等待 WordPress 初始化完成后,运行 Certbot 获取证书:
docker-compose run --rm certbot
  1. 证书获取成功后,启动完整的服务:
docker-compose up -d

步骤四:配置 WordPress

  1. 访问 https://yourdomain.com 完成 WordPress 的初始设置
  2. 在 WordPress 后台”设置”→”常规”中,确保 WordPress 地址和站点地址都使用 HTTPS
  3. 安装 “Really Simple SSL” 插件确保所有资源都通过 HTTPS 加载

证书自动续期

SSL 证书每90天需要续期,可以设置一个 cron 任务自动续期:

0 0 * * * docker-compose run --rm certbot renew && docker-compose exec nginx nginx -s reload

常见问题解决

  1. 证书申请失败:检查域名是否正确解析到服务器,80端口是否开放
  2. 混合内容警告:确保 WordPress 设置和插件配置正确
  3. 性能问题:可以考虑添加 Redis 或 Memcached 作为对象缓存

总结

通过 Docker 部署 WordPress 并配置 HTTPS,不仅简化了安装过程,还提高了安全性。Nginx 作为反向代理提供了更好的性能和安全性,而 Certbot 则简化了 SSL 证书的管理。这种架构适合大多数中小型网站,既保持了灵活性又具备企业级的安全特性。