标签归档:nginx

WordPress 迁移至 Docker:站库分离部署方案

前缀、文档修改记录

20261101 初始化编辑此文章,进行中

章节1、需求描述

今年层出不穷的漏洞,在虚拟机之前安装的Wordpress / PHP / Nginx面临这巨大的版本升级压力。年纪大了,为了点博客,折腾来折腾去,着实已经没有了乐趣。本就是写一点自己的技术知识分享的,没有太多必要花时间。 思来想去,还是基于Wordpress构建,方便升级。也可以保留原来的文章和内容。 暂时不用静态化页面托管的方式。

章节2、架构

既然要折腾和改变了,本次就把数据库和网站分离开的方式部署,共需要2台虚拟机服务器,1台负责Docker/Wordpress/Nginx,1台负责Mariadb 数据库。

这样的站库分离,有助于后面的改造。

这次迁移的目标是:

  1. 保留原有 WordPress 数据库中的全部文章、用户、分类、评论(可选)等数据。
  2. 保留原网站的图片、附件和其他上传文件(重要)。
  3. 使用官方 Docker 镜像部署 WordPress。
  4. Nginx 和 WordPress 部署在 10.11.11.91。
  5. MySQL 数据库独立部署在 10.11.11.92。
  6. 数据库密码、WordPress 密钥等敏感信息通过 .env 环境变量管理。
  7. 使用 Docker Compose 管理服务,方便以后升级、迁移和维护。

章节3、开工折腾

我这里先用测试环境,进行的演练测试,本文章涉及的迁移站点仅为我自己的博客,没有其他重要内容,迁移过程,仅供参考,请勿直接照搬硬抄。

3.1、 开通2台,私网环境的测试服务器

2台测试环境的服务器,都是4C 4G 36G的磁盘,操作系统Debian 13

3.2、 备份自己的数据集

1、 数据库备份集 /home/fd/Desktop/Package/服务器配置-Wordpress迁移容器/No.30.myBlog.mysqldump.20261101.SQL
2、 站点导出数据 工具/导出 输出内容为 /home/fd/Desktop/Package/服务器配置-Wordpress迁移容器/imgaccess.com/WordPress.2026-11-01.xml
3、 网站数据目录 图片 /var/www/imgaccess.com/wp-content/uploads.20261101.tar
4、 网站的Nginx配置文件 /home/fd/Desktop/Package/服务器配置-Wordpress迁移容器/nginx.imgaccess.com.conf
5、 网站的全部文件 /home/fd/Desktop/Package/服务器配置-Wordpress迁移容器/No.30.imgaccess.com.20261101.tar.gz
6、 数据库MySQL 5.5 备份脚本 /home/fd/Desktop/Package/服务器配置-Wordpress迁移容器/backup_myblog_mysql.sh

3.3、 测试服务器2台部署Docker 和Docker compose

按照官方教材来就行,略

3.4、 准备容器镜像

其中在10.11.11.91服务器上,Wordpress容器, https://hub.docker.com/_/wordpress ,选择 7.1.4-php8.5-fpm,包含 WordPress 7.1.4 + PHP 8.5 + FPM

docker pull wordpress:7.1.4-php8.5-fpm

同样的,这台机器上,需要1个Nginx的镜像

docker pull nginx:1.30.6-trixie

在10.11.11.92服务器上,准备mariadb:10.11的容器,这个LTS版本,对于原来从MySQL 5.5迁移过来的数据比较友好。

docker pull mariadb:10.11

3.5、 配置docker-comose文件

在10.11.11.91应用服务器,创建工作目录,其中 /var/www/html使用来放网站数据的, /opt/wordpress是用来放docker文件的。

mkdir -p /opt/wordpress-app  /var/www/html  /var/log/docker/nginx

3.6、 创建环境变量文件

在10.11.11.91应用服务器,在/opt/wordpress-app目录下,配置对于数据库的环境变量

root@DockerWordpress:/opt/wordpress-app# cat .env
WORDPRESS_DB_HOST=10.11.11.92:23306
WORDPRESS_DB_NAME=db_name
WORDPRESS_DB_USER=db_user
WORDPRESS_DB_PASSWORD=db_pass
TZ=Asia/Shanghai
WORDPRESS_TABLE_PREFIX=wp_
root@DockerWordpress:/opt/wordpress-app# chmod 600 .env

3.7、 创建网站目录

cd /var/www/html
mkdir imgaccess.com
chown -R 33:33 /var/www/html/imgaccess.com

3.8、 创建Nginx配置文件目录

mkdir -p /etc/nginx/conf.d
mkdir -p /etc/nginx/certs

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨