宝塔面板备份与迁移网站:定时备份、异地备份、恢复和搬家

蜗牛大人VPS教程

本文含推广链接:通过此链接购买,本站可获得佣金,不影响你的价格。

用虚拟主机的时候,备份是主机商自动做的。换到VPS之后,备份变成了你自己的事:没有设置,就没有备份。服务器被入侵、误删文件、更新插件导致网站崩溃,这些情况迟早会遇到一次,有没有备份决定了是花十分钟恢复,还是从头再来。

本文介绍用宝塔面板备份、恢复和迁移网站的方法。

一个WordPress网站要备份什么

两样东西,缺一不可:

  • 网站文件:位于 /www/wwwroot/你的域名,包括WordPress程序、主题、插件和上传的图片;
  • 数据库:文章、页面、产品、订单、设置都在数据库里。

只备份了文件没有备份数据库,恢复出来的是一个没有内容的空网站。

备份的基本原则

  • 自动:靠人记着手动备份,一定会忘;
  • 异地:备份只放在同一台服务器上,服务器出事时备份也一起没了。至少要有一份放在别的地方;
  • 多份:保留最近若干天的备份,因为问题不一定当天就能发现;
  • 验证过:没有试过恢复的备份,不能算备份。

手动备份

在做有风险的操作之前,比如更新WordPress大版本、更换主题、修改代码,先手动备份一次。

备份网站文件:在宝塔的网站列表里,每个站点的“备份”一栏会显示备份数量,点击它,再点击备份站点。完成后可以在列表里下载到自己的电脑。

备份数据库:在宝塔的数据库菜单里,每个数据库同样有“备份”一栏,点击后选择备份,完成后可以下载。

手动备份的文件默认保存在服务器的 /www/backup 目录下,网站在 site 子目录,数据库在 database 子目录。

用计划任务定时备份

宝塔左侧菜单的计划任务可以定时自动执行备份。需要添加两个任务。

备份网站

点击添加任务:

  • 任务类型:备份网站;
  • 执行周期:每天,时间选访问量最少的时段,比如凌晨3点;
  • 备份网站:选择具体的站点,或者选所有;
  • 备份到:服务器磁盘(配置了对象存储之后可以选对象存储);
  • 保留最新:7份;
  • 排除规则:可以填入不需要备份的目录,比如缓存目录 wp-content/cache。

备份数据库

再添加一个任务:

  • 任务类型:备份数据库;
  • 执行周期:每天,时间和网站备份错开半小时;
  • 备份数据库:选择具体的数据库,或者选所有;
  • 保留最新:7份。

有订单的电商网站,数据库可以备份得更频繁,比如每6小时一次。数据库通常只有几十MB,多备份几份占不了多少空间。

添加之后,在任务列表里点击执行,手动跑一次,然后点击日志,确认备份成功。

留意硬盘空间

备份会占用硬盘。一个2GB的网站保留7份就是14GB,25GB硬盘的VPS很快就满了。硬盘写满会导致数据库崩溃、网站打不开。所以:

  • 根据硬盘大小调整保留份数;
  • 图片很多的网站,文件可以每周备份一次,数据库每天备份;
  • 最好把备份存到对象存储,本地只留一两份。

异地备份:同步到对象存储

宝塔的软件商店里有多个对象存储插件,可以让计划任务把备份直接上传到云存储:

  • 国内的阿里云OSS、腾讯云COS、七牛云存储;
  • 海外的亚马逊S3、Google Drive等,以及兼容S3协议的存储,比如Cloudflare R2、Backblaze B2。

以兼容S3协议的存储为例:

  1. 在对象存储服务商那里创建一个存储桶(Bucket),生成一组访问密钥(Access Key和Secret Key);
  2. 在宝塔的软件商店里安装对应的插件(亚马逊S3云存储),打开插件,填入密钥、存储桶名称和接入地址(Endpoint);
  3. 回到计划任务,编辑之前创建的两个备份任务,把“备份到”改成这个对象存储,可以勾选同时保留本地备份;
  4. 手动执行一次,到对象存储的后台确认文件已经上传。

对象存储按用量计费,几GB的备份每月的费用通常不到一美元,有的还有免费额度。

如果不想配置对象存储,最低限度的做法是:每周登录一次面板,把最新的备份下载到自己的电脑上。

和VPS厂商的快照、备份配合

VPS厂商一般提供整机的快照和自动备份:

  • Hostinger VPS自带每周自动备份和手动快照,见《Hostinger VPS教程》;
  • Vultr的自动备份要另外付费,是服务器价格的20%,见《Vultr教程》。

整机备份和宝塔的网站备份是互补的:

对比项厂商的快照 / 整机备份宝塔的网站备份
备份范围整台服务器,包括系统和环境单个网站的文件和数据库
恢复方式整台服务器回到当时的状态只恢复某一个网站
适合的情况系统损坏、被入侵、配置改乱了某个网站出问题、误删内容
能否拿到别处使用一般只能在同一家厂商内恢复可以,在任何服务器上都能恢复

建议两种都开:整机备份应对整台服务器的问题,宝塔备份应对单个网站的问题,同时也是你换服务器、换厂商时带得走的那一份。

从备份恢复网站

恢复数据库

在数据库菜单里点击对应数据库的备份数量,在备份列表里找到要恢复的那一份,点击恢复。恢复会覆盖当前数据库里的所有内容,如果不确定,先给当前的状态也备份一次。

如果备份文件在自己的电脑上,点击导入,上传 .sql 或者压缩包文件,再点击导入。

恢复网站文件

  1. 在文件菜单里进入 /www/backup/site,找到要恢复的备份压缩包(在电脑上的话先上传);
  2. 把网站根目录里现有的文件改名或者移走(比如把整个目录压缩成一个包留着);
  3. 把备份压缩包解压到网站根目录;
  4. 确认文件的所有者是 www。

文件和数据库都恢复之后,访问网站检查前台和后台是否正常。

建议在网站刚做好的时候就完整演练一次恢复,可以在同一台VPS上新建一个测试站点,用备份把网站恢复到测试站点上。演练过一次,真出问题的时候才不会慌。

把网站迁移到另一台服务器

换VPS厂商、换机房、升级到新服务器的时候,需要把网站搬过去。有两种方法。

方法一:手动迁移

适合迁移一两个网站,步骤清晰,不容易出错:

  1. 在旧服务器上,分别备份网站文件和数据库,下载到电脑;
  2. 在新服务器上安装宝塔和相同或更高版本的PHP、MySQL,添加站点(域名和旧站相同),同时创建数据库;
  3. 把网站文件的压缩包上传到新站点的根目录并解压,删除宝塔自动生成的 index.html;
  4. 在数据库菜单里,把数据库备份导入到新建的数据库;
  5. 编辑网站根目录下的 wp-config.php,把 DB_NAME、DB_USER、DB_PASSWORD 改成新数据库的信息;
  6. 在站点设置里把伪静态设为wordpress;
  7. 先不改解析,在本机测试:修改自己电脑的hosts文件,把域名指向新服务器的IP,访问网站,检查是否正常。测试完把hosts改回来;
  8. 到DNS后台把域名的A记录改成新服务器的IP;
  9. 解析生效后,在新服务器上申请SSL证书,见《宝塔面板申请和续期SSL证书》;
  10. 旧服务器保留几天,确认没有问题再删除。

第7步里SSL证书还没有申请,访问时浏览器会有证书警告,属于正常现象。也可以先用DNS验证的方式在新服务器上把证书申请好,这样切换解析时没有中断。

方法二:宝塔一键迁移

如果两台服务器都装了宝塔,可以用软件商店里的“宝塔一键迁移”插件:

  1. 在新服务器的面板设置里开启API接口,生成API密钥,并把旧服务器的IP加入IP白名单;
  2. 在旧服务器上安装一键迁移插件,填入新服务器的面板地址和API密钥;
  3. 插件会检查两边的环境,然后让你选择要迁移的网站和数据库;
  4. 开始迁移,等待完成。

适合一次迁移很多个网站。前提是两边的环境要一致(都是Nginx,PHP和MySQL的版本新服务器不能低于旧服务器),新服务器上不能有同名的站点和数据库。迁移完成后,同样要先测试,再改解析。

迁移到非宝塔环境

如果是从宝塔迁移到虚拟主机或者Cloudways,用WordPress的迁移插件更方便,不涉及服务器层面的操作,见《把网站迁移到Cloudways》。

常见问题

用WordPress备份插件可以吗?

可以,UpdraftPlus这类插件能把网站备份到Google Drive等网盘,恢复也方便。它和宝塔的备份可以同时用,相当于多一层保险。区别是插件备份由PHP执行,网站很大时可能超时;宝塔的备份在系统层面执行,更稳定。

备份任务显示成功,但备份文件很小?

打开任务日志看具体信息。常见原因是数据库名选错了,或者硬盘空间不足导致压缩中断。备份文件的大小应该和网站目录的大小在同一个数量级。

恢复之后网站打不开?

检查三点:wp-config.php 里的数据库信息和实际是否一致;网站文件的所有者是不是 www;伪静态有没有设置。

多久备份一次合适?

看网站内容变化的频率。企业展示站每周一次整站备份、每天一次数据库备份就够了;每天有订单的商店,数据库至少每天备份多次。

总结

VPS上的备份要自己负责。在宝塔的计划任务里添加“备份网站”和“备份数据库”两个任务,把备份同步到对象存储,再配合VPS厂商的整机快照,就有了比较完整的保障。最后别忘了演练一次恢复。

这也是自己管VPS和托管主机的主要区别之一:Cloudways这类托管云主机的备份是面板自带的,见《Cloudways和自己管VPS哪个好?》。更多VPS教程见《VPS教程汇总》。

文章版权归作者所有,转载请注明出处:https://woniune.com/posts/baota-backup-migrate-website/

相关推荐