侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计创建 31 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Docker Compose 环境下 WordPress 备份与恢复全指南

Administrator
2026-01-06 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

在使用 Docker 部署 WordPress 时,目录映射(Volumes)是确保数据持久化的核心。很多用户会纠结:既然已经映射了 wp-content,核心程序文件夹 html 还有必要映射并备份吗?本文将为您深度解析。


一、 核心原理:为什么要保留 ./html 映射?

在你的 docker-compose.yml 配置中,通常会有类似以下的挂载项:

  • ./wp-data:/var/www/html/wp-content:存放主题、插件和上传的媒体文件。
  • ./html:/var/www/html:存放 WordPress 核心程序文件。
  • ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:存放 PHP 环境优化配置。

1. 为什么 ./html 不能随便删除?

虽然你可能没有手动修改过这个目录里的 PHP 文件,但 WordPress 在运行中会自动生成关键内容:

  • wp-config.php:这是网站的“大脑”,存储了数据库连接信息。即便你在 Compose 里写了环境变量,该文件也是网站识别已安装状态、连接数据库的物理凭证。
  • .htaccess:决定了伪静态规则(如美化链接)。如果丢失,网站内页可能会报 404 错误。

二、 备份策略:哪些是“命根子”数据?

一套完整的 WordPress 备份方案必须包含以下三个核心部分:

  1. 数据库 (SQL 文件):包含所有文章、页面、评论和用户设置。
  2. wp-content 目录 (wp-data):包含所有图片、视频、已安装的主题和插件。
  3. 关键配置文件:即 wp-config.php.htaccess 以及你的 docker-compose.ymluploads.ini

三、 实战:如何恢复你的网站?

方案 A:全量备份恢复(最简单、最推荐)

如果你备份了包含 ./html 目录在内的整个项目文件夹:

  1. 上传文件:将备份的整个文件夹上传至新服务器。
  2. 启动环境
    docker-compose up -d
    
  3. 恢复数据库
    # 将备份的 SQL 导入数据库容器
     # 注意:替换 <数据库容器名> 为你 yml 中的 container_name,<数据库名> 为变量中的值
     docker exec -i <数据库容器名> mysql -u root -p'你的密码' <数据库名> < ./backups/db_backup.sql
     
    
  4. 修正权限
    # 确保容器内的 www-data 用户(UID 33)对映射文件夹有权读写
    sudo chown -R 33:33 ./html ./wp-data
    

方案B:精简备份恢复(仅核心数据)

如果你为了节省空间,只备份了 wp-data、sql 和单个 wp-config.php:

  1. 调整配置:在 docker-compose.yml 中不再挂载整个 ./html 文件夹,而是精准挂载这几个独立文件。

  2. 启动服务:Docker 会自动从镜像中填充缺失的核心程序,并覆盖使用你提供的配置文件。


四、 常见问题 (FAQ)

  • 恢复后提示“建立数据库连接错误”?

    • 请检查 wp-config.php 中的数据库主机名是否与 docker-compose.yml 中的数据库服务名一致。

    • 确认 SQL 数据库是否已成功导入。

0

评论区