搞网站或者玩自有博客的同学经常会遇到网站搬家的问题,有时候是因为空间不好,有时候是因为被迫搬家,如服务器ip被墙,或者空间商倒闭了.诸如此类问题有如家常便饭,所以我们要时刻有狡兔三窟的准备.

时刻准备备份你的网站资料

所谓网站数据,使用WordPress博客系统通常包含以下:

  • wp-config.php:包含网站数据库主机用户密码等敏感信息
  • wp-content:此目录包含主题,插件,上传的附件等主要信息[重要]
  • mysql数据库:保存网站设置,文章内容[重要]
  • .htaccess:此文件设置固定链接后会写入相关设置,一般不需要备份

我们可以定期把以上文件在线压缩打包[空间商一般都提供此服务],备份到网盘或者邮箱或者用ftp软件下载到本地保存,推荐用flashFXP,介绍及下载见本站另外一篇文章:FlashFXP绿色注册版

有一款备份插件:wp Time Machine,可以点击超链接访问作者主页下载安装,也可以在WordPress搜索安装.此插件提供备份以上需要备份的文件的功能,备份的文件将发送到ftp或者dropbox.如果是自己管理的主机,还可以添加定时任务,达到自动备份的功能.

本人使用过程中,wp Time Machine只备份了wp-content目录到dropbox,其他文件日志中已经显示备份了,但并未把其他文件备份,不知道为何,有完整备份的同学还望告知一声如何处理.

备份方法

由于安装的插件未能把我的数据库也一起备份[据说有个DBbackup插件可以,暂未尝试],所以就自己备份相关数据库和其他未备份的文件,手动备份数据库方法有两种:

使用WordPress自带的导出功能备份

WordPress后台控制面板>工具>导出,选择你要导出的内容,一般选择所有,然后点击下载导出文件到本地就可以了.下载得到一个xml文件,里面就包含数据库中的所有文章内容,有兴趣可以打开一看究竟.

使用WordPress自带的导出工具备份网站文章是个比较方便的方法,但备份整个网站时,推荐使用phpmyadmin这类来备份数据库了.

备份数据库

登陆MySQL数据库后台,一般会提供一个在线管理,在线管理一般用的就是PHPmyadmin了.登陆后,选择导出,将把你选择的数据库完整导出到文件,如图2所示.

默认将导出sql格式,当然,我们也可以选择xml,包含的内容都是一样的,使用什么格式就看个人喜好.不过有个地方需要注意,因为我们用的网站空间时,空间商提供的数据库账号都是有权限限制的,所以选择数据库导出时,将导出创建数据库语句CREATE DATABASE
而我们的账号往往是已经创建好了数据库名,不具备creat权限,导入时用此数据库有可能会提示错误而无法导入,我们可以对导出的sql文件修改,将以下代码注释或者删除.

1
2
`CREATE DATABASE `xxx` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `xxx`;`

或者导出之前先点击自己的数据库,然后全选表,再点导出,此时导出的文件中将不包含创建数据库语句,其他内容一致.

至此,备份网站资料的工作已经全部完成.

还原备份

如果没有遗漏,我们已经备份了以下内容:

  • wp-content目录
  • sql文件
  • wp-config.php
  • .htaccess(一些服务器设置,对网站来说无关紧要)

还原文件

我们可以在本地把WordPress程序文件和我们备份的wp-content,`wp-config.php.htaccess`整合好,然后通过ftp上传,因为WordPress程序和我们备份的文件都比较小,上传时间可能会比较长.建议是本地压缩,然后上传,再通过空间商的在线解压释放文件,此方法可大大减少WordPress程序部署时间.

当然,恢复wp-config.php文件的前提是新的空间用户名和密码与原先老的空间相同的情况下,如果已经改变,此文件就不必备份了,到时候创建一份即可.

恢复数据

文件部署完成,我们再恢复mysql数据库.

针对之前两种备份方案,恢复数据库有两种途径:

通过WordPress的导入功能还原

WordPress日常备份文章是比较方便,但注意我前面说的是文章内容,你网站的一些插件,主题等设置不包括在内,所以用此备份还原网站时,需要先安装WordPress,安装完成后用WordPress导入功能导入之前用WordPress导出的xml文件.导入功能需要安装一个插件,点击导入后会自动列出可用的插件,点击WordPress 导入工具,然后选择之前通过WordPress导出的xml文件,点击上传并导入,接下来的事情就没什么好说的了,程序会自动帮你搞定.这里我们可以发现,WordPress导出的备份不关心数据库和密码,即可以用于任何空间使用,只要对应的wp-content目录备份好就可以了.

同时我们需要注意,此方法导入的文章和分类id号会发生改变,当然,此改变程序会自动完成关联,不会影响到文章访问,在还原前请将原先的文章清空(你不会不备份直接照做吧?(^o^)/~),然后再导入就不会有重复和多余了.

通过phpmyadmin导入脚本

此方法不依赖于WordPress程序是否安装完成,只需要登录到phpmyadmin,选择对应数据库,然后使用导入功能导入即可.导入完成后,访问网站前台即可看到效果,虽然方法看起来比较麻烦点,但备份信息全面准确,推荐此方法.

至此,整个网站备份与恢复的过程就完成.建议大家在本地搭建一个php环境,本地先进行恢复实验,调试通过了再上传省去网络慢的烦恼.