博客搬迁记

博客搬迁记

这两天续费好VPS之后,就考虑着把旧版博客放回到天天停机的虚拟主机上,维持原来的整体博客结构,然后在腾讯云VPS上部署新版博客,经过两天的折腾,顺利完成

这两天续费好VPS之后,就考虑着把旧版博客放回到天天停机的虚拟主机上,维持原来的整体博客结构,然后在腾讯云VPS上部署新版博客,经过两天的折腾,顺利完成,来记录一下操作过程,也给以后万一需要再搬迁留个经验参考。

备份数据库

任何对VPS的操作,都要先把数据库备份好,毕竟博客重要的就是那些文章,而不是博客系统本身。我这里使用了Navicat,把腾讯云MySQLWordpress的数据库先用wp-optimize优化完,然后备份到虚拟主机自带的20M数据库里,看了一下,467篇文章加上其他的数据占用了10.898M,这些数据就封存在这里了。

重置VPS然后安装Halo博客系统

到腾讯云的控制台,选择重装系统,确认之后,VPS就恢复如初了, 然后按照Halo博客官网在Linux服务器部署Halo的教程安装。除了MySQL的安装这里没有列出来以外,其他的每个步骤都有。
这里遇到的几个问题如下:

  1. 根据教程下载回来的单独配置文件application.yaml中没有包含如教程中所示的Halo配置部分,想要自定义管理界面的入口就必须把这个加上去,如果使用MySQL的话,还需要把H2数据库配置上边那行连接池也一并注释掉。我这里依然使用默认的8090端口。

  2. 配置nginx反向代理的时候,一定要跟着教程走到底,不要在监听80端口那里就停下来,现在很多浏览器会自动尝试https协议,如果失败就访问不了,经过验证,只要按照下边的步骤让certbot自行修改nginx配置,就可以使用https来访问,毫无问题。

  3. 在初始化Halo博客的时候,域名一定要填写正确,这个和Wordpress类似,填写错误的话会影响所有博客动态地址的解析。这个后边也会提到。之前在安装certbot里会被询问要为哪个地址安装证书,我选的是为conyli.cc安装证书(而不是www.conyli.cc),这里就填入https://conyli.cc

经过上述配置之后,就可以正常访问Halo博客了。

在虚拟主机上重新配置Wordpress

这个时候就发现Wordpress确实够臃肿。我其实是先在虚拟主机上安装了一个全新的Wordpress,然后直接把数据从腾讯云传输到数据库中,结果发现无法正常显示。后来思考了一下,可能是因为刚安装的Wordpress没有采用同样的主题,于是安装了相同的主题Futurio,发现就可以正常显示了。

我之前由于给朋友帮忙,曾经在阿里云里解析了一个二级域名dessert.conyli.cc到虚拟主机,现在使用这个地址可以正常显示博客首页,但是点内部的链接,浏览器还是会跳转到以https://conyli.cc开头的链接,这是因为之前提到过要填写正确的域名,于是登录阿里云控制台,先添加一条新的DNS解析记录:

主机记录  记录类型
archive	    A

然后删除原来的二级域名dessert的解析。到虚拟主机的控制界面,为虚拟主机绑定archive.conyli.cc这个地址,同时也删除其他绑定,仅仅保留绑定这个地址,然后选上开启阿里云提供的免费https证书,这样这个网址就可以通过https协议来访问。

修改了绑定的域名之后,就需要修改Wordpress内部用于动态拼接链接的域名,如果采用正常登录修改的方法,那我得先把conyli.cc解析回虚拟主机才行,不过可以直接登录进虚拟主机的数据库,找到wp_options表,将其中的siteurlhome字段内容都修改成https://archive.conyli.cc即可,再通过这个链接访问旧版博客,就可以正常登录了。

之后就是一些收尾工作,比如很多页面的链接依然还是以conyli.cc开头,都要进行手工修改,文章列表里的链接也需要进行批量修改,原本单独编写的一些后缀名是html的页面,也需要把页面和对应的css文件重新上传到虚拟主机的Wordpress目录下,经过一番修改,基本上都搞好了。

CHROME 81版的图片加载问题

Chrome81版本默认图片以HTTPS协议加载,如果是HTTP协议就无法正常加载。这个新功能直接导致了Django 2 by example中图片无法加载。原因是:七牛云的外链是http协议,我的站点现在使用https协议,在Chrome81中直接打开Django 2 by example的页面,Chrome会提示说在https中不能执行http外链,不过换成其他浏览器都可以。开启七牛云的https协议需要花钱,想了一想只是为了Chrome81就算了,大家如果有需要,还是git clone一下,在本地打开,就可以正常加载图片了。

最后一步就是在旧版博客里为新版博客添加一个顶部菜单导航,在新博客里也同样添加一个导航到旧版博客的菜单,这样就完成了新旧博客并存的工作。

最后还要写一下,certbot更新证书的操作:

certbot renew --force-renew
LICENSED UNDER CC BY-NC-SA 4.0
Comment