最近刚刚把WordPress迁移到了新的服务器上,原先那台老是宕机不能忍了(阿里云的轻量服务器据说有性能限制,现在看来是真的了,MySQL进程经常莫名其妙的退出,想必是宿主机在限制虚拟机的CPU)。站点迁移,实际上就是把站点的完整备份转移到新的服务器上,我使用了WordPress官方提供的VaultPress扩展来实现站点文件的备份恢复。

1. 安装 VaultPress 插件

VaultPress是WordPress官方提供的站点备份恢复增值服务,个人版每天自动备份一次,专业版是站点一旦发生变化就实时备份。备份内容包括:数据库表、上传的媒体文件、插件文件、主题文件、评论、文章,以及完整的个人设置,备份会存放在WordPress官方的服务器上,因此十分方便安全。

在备份之前,先检查一下本地用户名密码,这个一定要记住,要是忘记的话先去个人资料里重置一下密码然后记住。

安装VaultPress插件后,插件会扫描站点进行首次备份,首次备份是完整备份,因此花费的时间比较长,以后每次备份都是差异备份。备份情况可到 https://dashboard.vaultpress.com/ 上查看,站点恢复也是在这个网站上操作。

2. 设置 VaultPress 恢复路径

现在VaultPress已经帮我们的站点做好备份了,接下来就是把备份恢复到新的服务器上去,这一步包含的操作最多。

  1. 登录恢复目标服务器,安装WordPress,绑定域名、设置解析并添加SSL证书
  2. 使用VaultPress公钥创建VaultPress与目标服务器的SSH连接
  3. 设置VaultPress恢复路径
  4. 执行恢复操作

下面一步一步说明:

2.1 登录恢复目标服务器,安装 WordPress ,绑定域名、设置解析并添加SSL证书

对Linux操作不熟悉的可以安装宝塔面板,我是用宝塔面板操作的。安装WordPress,这里最好使用PHP7.3,这是WordPress官方推荐的PHP版本,而且经过我的实测,WordPress在PHP7.3下的运行速度比在PHP5.6快得多。

目前版本的宝塔面板自带的源码部署是安装的WordPress4.9.2,不支持PHP7.3,可以先用PHP7.2临时应付一下,等最后备份恢复完成后,升级完WordPress再切换到PHP7.3。

部署好WordPress源码后,用浏览器打开 wp-admin 文件夹下的 install.php ,设置好数据库连接,进入著名的“WordPress5分钟安装程序”,稍等片刻后WordPress安装完成, 然后设置一个临时的用户admin,反正这个用户后面就用不到了,备份恢复过来后就是用的之前的用户。

安装好后给这个站点配置SSL证书,宝塔面板配置证书很容易,把下载下来的证书文件(我用的阿里云的免费证书,在云盾证书管理控制台下载,注意选择服务器类型)打开,复制里面的内容粘贴进去再保存。然后修改原始域名DNS解析,解析到这个新服务器的IP(在阿里云云解析控制台设置);如果是设置新域名,那直接添加新DNS解析,把域名解析到这台服务器的IP,然后同上添加SSL证书。

2.2 使用 VaultPress 公钥创建 VaultPress 与目标服务器的SSH连接

进入第一步中提到的 VaultPress 网站,点击“settings”进入设置界面,选择“Alternate”打开备用连接设置。

备用连接设置

第一行URL填写站点域名,第二行三个单选按钮选择SSH,第三行服务器地址填写目标服务器的地址,第四行端口号填写22,第五行用户名填写服务器的登录用户名。

注意,如果服务器登录用户名跟2.1步骤中创建WordPress站点的用户名不一致的话,比如登录服务器使用admin用户名,创建站点的用户名是www(宝塔面板会默认使用www用户来创建站点),站点目录的权限要修改成777,以便VaultPress可以使用登录用户名修改站点目录。

然后第六行密码,不用填写,因为这里使用SSH协议来连接。点击下面的“Show Public Key”按钮获取VaultPress公钥,把公钥添加到服务器用户目录 .ssh 文件夹里的 authorized_keys 文件(所选用户目录要跟指定的用户名一致)。

2.3 设置 VaultPress 恢复路径

接着上面步骤,最后一行设置站点路径,告诉VaultPress要把备份恢复到哪个位置。这里使用2.1步骤中WordPress的安装目录,填写绝对路径即可。

2.4 执行恢复操作

全部设置完成后,点击“Save”保存设置,此时VaultPress会进行连接检查,如果配置无误,则会提示连接可通。这时候可以点击页面左侧导航“BACKUPS”按钮进入备份管理页面,选择想要恢复的备份然后点击“Restore”。VaultPress会列出可供使用的服务器访问凭据,选择“Alternate”方式, 随后VaultPress会进行连接测试,测试通过后点击“Restore Now”按钮执行恢复。整个恢复操作需要10分钟左右(与备份大小和服务器下行带宽有关,服务器需要和WordPress服务器通信,从WordPress服务器上下载备份),成功恢复后会收到VaultPress的邮件通知。

站点正在恢复

3. 登录恢复完成的站点

恢复完成后在浏览器地址栏输入域名访问,这时候会出现与原先站点登录一样的界面,是使用 wordpress.com 账号登录还是使用用户名密码登录。如果是前者,那么很快,使用 wordpress.com 账号登录完成后进去后台就能使用了;如果是后者,需要输入原先站点的本地用户名以及密码才能进入后台。

3.1 密码忘记如何操作

如果站点没有与 wordpress.com 关联,而且又忘记了本地用户的密码,这时候会很麻烦(所以我在第1步中特别说明要记住这个密码),这时候可以尝试远程连接站点的MySQL数据库,找到存放用户信息的表,手动修改保存的密码。注意WordPress是对密码进行MD5加密存储的,数据库保存的是MD5形式,前台登录输入的是明文密码。 修改完数据库中存储的密码后再在前台登录。

3.2 进入后台后发现部分内容没有恢复成功怎么办

在我恢复站点的时候,我就遇到这种问题,恢复完成登录进后台,发现没有文章,没有评论,也没有上传的媒体文件,官方插件Jetpack还无法使用。我用电子邮件联系了WordPress技术支持人员,几轮交流后,他们告诉我说Jetpack需要站点启用SSL访问后才可使用。所以写这篇教程时,我在2.1步骤中说明了要绑定域名并添加SSL证书,而我当初并没有这样操作。

所以如果发现内容没有恢复完全,可以尝试查看站点域名绑定、DNS解析、SSL证书配置是否有误。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据