1️⃣ 安装 Nginx 和 Certbot,获取 SSL 证书
首先,确保宿主机上的 Nginx 配置正确并且使用 HTTPS。
安装 Nginx:
# 安装 Nginx
apt update
apt install -y nginx
# 启动并设置 Nginx 开机自启
systemctl enable nginx
systemctl start nginx
# 检查 Nginx 状态,确保运行正常
systemctl status nginx
配置 Nginx 反向代理:
- 创建一个新的 Nginx 配置文件:
nano /etc/nginx/sites-available/wordpress.conf
- 配置反向代理,将流量通过 8080 端口转发到 Docker 中的 WordPress 容器:
server {
listen 80;
server_name benson80.eu.org;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
}
- 激活 Nginx 配置并重启:
ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
nginx -t # 测试配置是否正确
systemctl restart nginx
安装 Certbot 获取 SSL 证书:
- 安装 Certbot 和 Nginx 插件:
apt install -y certbot python3-certbot-nginx
- 使用 Certbot 获取并自动安装 SSL 证书:
certbot --nginx -d benson80.eu.org
- 输入你的邮箱地址并同意服务条款。Certbot 会自动配置 SSL 证书并修改 Nginx 配置,使其支持 HTTPS。
- 确保 自动续期 证书:
systemctl enable certbot.timer
- 完成后,验证证书安装是否成功,访问
https://benson80.eu.org。
2️⃣ 创建 Docker 网络
接下来,创建一个 Docker 网络,确保 WordPress 和 MySQL 可以互相通信。
docker network create wp-net
docker network ls # 查看网络是否创建成功
3️⃣ 部署 MySQL 容器
启动 MySQL 容器并挂载数据卷:
docker run -d --name mysql-server --network wp-net \
-e MYSQL_ROOT_PASSWORD=#your_password_here \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wpuser \
-e MYSQL_PASSWORD=#your_password_here \
-v /root/mysql-data:/var/lib/mysql \
mysql:8.0
4️⃣ 部署 WordPress 容器
启动 WordPress 容器并挂载数据卷:
docker run -d \
--name wordpress \
--network wp-net \
-e WORDPRESS_DB_HOST=mysql-server:3306 \
-e WORDPRESS_DB_USER=wpuser \
-e WORDPRESS_DB_PASSWORD=#your_password_here \
-e WORDPRESS_DB_NAME=wordpress \
-p 8080:80 \
-v /root/wp-data:/var/www/html \
wordpress:latest
此时,你的 WordPress 容器应该已经在 http://127.0.0.1:8080 启动,并且能够通过 Nginx 反向代理在 https://benson80.eu.org 上访问。
5️⃣ 修改 WordPress 配置
进入 WordPress 容器,并修改 wp-config.php 文件,设置站点地址为 HTTPS:
docker exec -it wordpress bash
nano /var/www/html/wp-config.php
在文件中添加以下配置:
define('WP_HOME','https://benson80.eu.org');
define('WP_SITEURL','https://benson80.eu.org');
保存并退出。
6️⃣ 安装 UpdraftPlus 插件
- 登录到你的 WordPress 后台,进入 插件 页面,搜索并安装 UpdraftPlus 插件。
- 激活插件后,进入插件设置页面,上传你备份的文件(如数据库、插件、主题等)。
上传备份文件:
- 将 Google 云端硬盘 上的备份文件下载到宿主机,并上传到 UpdraftPlus 插件设置页面。
- 按照默认流程:数据库 → 插件 → 主题 → 上传 → 其他。
7️⃣ 测试和验证
- 检查 WordPress 网站:访问
https://benson80.eu.org,确认网站能够通过 HTTPS 正常加载。 - 确保备份文件上传成功:在 UpdraftPlus 插件中检查所有备份文件是否正确恢复。
- 检查 Nginx 和 Certbot 配置:确认网站使用 SSL 证书并且 HTTPS 生效。
完成!
至此,你的 WordPress 网站 配置完成并支持 HTTPS 访问,且已启用 UpdraftPlus 插件 来进行备份恢复。