网站数据丢失的代价是灾难性的。黑客攻击、服务器故障、误操作都可能在瞬间摧毁你多年的心血。本文详细介绍 WordPress 网站备份与恢复的完整方案。

一、为什么要备份?

以下情况都可能导致网站数据丢失:

  • 服务器故障:硬盘损坏、机房断电、母机宕机
  • 黑客攻击:数据库被删、文件被篡改、勒索病毒
  • 人为误操作:误删文件、更新失败、配置错误
  • 商家跑路:VPS商家倒闭,数据无法找回

黄金法则:网站文件和数据库必须分开备份,且保留多个时间点的备份。

二、备份什么内容?

一个完整的 WordPress 备份包含:

类型 内容 大小
网站文件 wp-content(主题/插件/上传文件) 几百MB~几GB
数据库 wp_posts、wp_options等表 几MB~几十MB
配置文件 wp-config.php、.htaccess 小于1MB

三、方法一:宝塔面板一键备份

使用宝塔面板建站的站长,最推荐使用内置的备份功能。

3.1 手动备份

  1. 宝塔面板 → 网站 → 找到你的站点 → 备份
  2. 选择「备份网站」或「备份数据库」
  3. 点击「备份」按钮
  4. 备份完成后可在列表中下载或恢复

3.2 自动备份计划

  1. 宝塔面板 → 计划任务
  2. 添加任务:任务类型选择「备份网站」
  3. 执行周期:每天凌晨3点
  4. 保留份数:建议 7–14 份
  5. 备份到:本地 + 远程存储(推荐阿里云OSS或又拍云)

3.3 远程存储配置

宝塔支持备份到:

  • 阿里云 OSS
  • 腾讯云 COS
  • 又拍云
  • 七牛云
  • FTP 远程服务器

配置方法:软件商店 → 宝塔配置 → 存储设置 → 添加存储。

四、方法二:UpdraftPlus 插件备份

UpdraftPlus 是 WordPress 最流行的备份插件,支持自动备份到云端。

4.1 安装与配置

  1. 插件 → 安装插件 → 搜索「UpdraftPlus」
  2. 安装并启用
  3. 进入「设置」→「UpdraftPlus 备份」

4.2 远程存储设置

UpdraftPlus 支持:

云存储 免费额度 推荐度
Google Drive 15GB 五星推荐
Dropbox 2GB 四星推荐
Amazon S3 需付费 三星推荐
FTP/SFTP 不限 四星推荐

推荐配置:Google Drive 免费 15GB + 每周自动备份

4.3 自动备份计划

  1. UpdraftPlus 设置 → 「计划」选项卡
  2. 文件备份:每周
  3. 数据库备份:每天
  4. 保留备份:5–10 份

五、方法三:All-in-One WP Migration

适合需要迁移网站的用户,可以导出完整的备份包并导入到新站点。

5.1 导出备份

  1. 插件 → 安装「All-in-One WP Migration」
  2. 进入「All-in-One WP Migration」→「导出」
  3. 选择「文件」导出完整备份
  4. 下载 .wpress 备份文件

5.2 恢复备份

  1. 新站点安装 WordPress 和 All-in-One WP Migration
  2. 进入「导入」→ 上传 .wpress 文件
  3. 等待导入完成
  4. 更新固定链接和站点 URL

注意:免费版有 512MB 导入限制,大站点需购买付费版。

六、方法四:手动备份(命令行)

适合技术型站长,完全掌控备份过程。

6.1 备份数据库

mysqldump -u 用户名 -p 数据库名 > backup_date.sql

6.2 备份网站文件

tar -czvf website_date.tar.gz /www/wwwroot/你的站点目录

6.3 下载到本地

# 使用 scp 下载到本地
scp root@服务器IP:/root/backup.sql .
scp root@服务器IP:/root/website.tar.gz .

七、方法五:定时自动备份脚本

#!/bin/bash
# WordPress 自动备份脚本

DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
DB_USER="数据库用户名"
DB_PASS="数据库密码"
DB_NAME="数据库名"
SITE_DIR="/www/wwwroot/你的站点"

# 创建备份目录
mkdir -p BACKUP_DIR

# 备份数据库
mysqldump -uDB_USER -pDB_PASS DB_NAME | gzip > BACKUP_DIR/db_DATE.sql.gz

# 备份网站文件
tar -czf BACKUP_DIR/site_DATE.tar.gz SITE_DIR

# 删除7天前的备份
find BACKUP_DIR -type f -mtime +7 -delete

配合 crontab 定时执行:

0 3 * * * /root/backup.sh

八、灾难恢复流程

场景一:文件丢失,数据库正常

  1. 重新上传网站备份文件
  2. 检查 wp-config.php 配置是否正确
  3. 刷新固定链接:设置 → 固定链接 → 保存更改

场景二:数据库损坏,文件正常

  1. 创建新数据库和用户
  2. 导入数据库备份文件
  3. 修改 wp-config.php 中的数据库信息
  4. 刷新固定链接

场景三:完全重装

  1. 重新安装 WordPress
  2. 导入数据库备份
  3. 上传 wp-content 文件夹
  4. 修改 wp-config.php
  5. 更新站点 URL(如域名变更)
  6. 刷新固定链接

九、备份最佳实践

  • 至少保留 3 个时间点的备份
  • 备份存储在异地(云存储或本地)
  • 定期测试恢复流程(至少每季度一次)
  • 重要操作前手动备份(更新/迁移/改配置)
  • 备份文件命名包含日期

总结

备份方案推荐:

  • 新手:宝塔面板自动备份 + UpdraftPlus 云端备份
  • 技术型:定时脚本备份 + rclone 上传云存储
  • 大站点:付费备份服务 + 本地异地双备份

有问题欢迎评论区留言。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。