3

掘墓人的小铲子

 1 year ago
source link: https://juemuren4449.com/archives/blog-update-to-161
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

博客升级 | 掘墓人的小铲子

Published on Apr 9,2023 in 博客相关 with 0 comment

博客升级半个多月了,目前运行稳定,记录一下升级过程。

我的博客使用的是「Halo」,部署时间是 2019 年,到现在有四年时间了,当时部署的版本是 0.4.0-0.4.2 之间的一个版本,有点记不太清了,紧接着升级到了 0.4.3,然后就一直用到了现在。

用了这么久,发现这个版本还是有些问题的:

  • 管理端界面不够现代化
  • 版本过旧,可能存在安全漏洞
  • 数据库使用的是 H2,访问不方便
  • 程序和数据分开,数据备份迁移不方便
  • 底部最近评论如果包含特殊符号可能显示异常

博客之前遇到过一次恶意评论,短时间内有大量评论涌入,我虽然开启了评论审核,但持续的评论使邮箱通知疯狂报错,无奈只好停了博客,从数据库中查到评论的 IP 地址,通过设置服务器黑名单才解决。说实话,H2 数据库的访问还是挺麻烦的,尤其是服务关了,想要本地访问就更麻烦了。

去年年底的时候就考虑升级博客,当时 Halo 已经开始 2.0 版本的测试了,稳定版是 1.6.0。

随后我就在本地测试博客升级,过程虽然有点繁琐,但是升级是可以走通的。

升级方案

一直想找个合适的时间升级一下,结果拖着拖着就到了今年,直到从「科技爱好者周刊(第 242 期):一次尴尬的服务器被黑」看到阮一峰老师博客被黑的消息,加速了我升级博客的步伐。

于是,找了个时间,开始博客的升级,此时最新的 v1 版本已经是 1.6.1 了,目测应该不会有什么更新了,便决定升级到此版本。

我的升级方案是先在本地虚拟机中进行升级,数据检查无误之后再迁移到服务器上。

具体的步骤如下:

  • 虚拟机 1
    • 恢复服务器同版本的 0.4.3 及数据
    • 升级到 0.4.4
    • 检查数据完整性
  • 虚拟机 2
    • 部署 1.2.0
    • 检查数据完整性
    • 升级到 1.6.1
  • 虚拟机 3
    • 下载配置文件
    • 设置使用 MySQL 数据库
    • 创建数据库
    • docker compose 映射本地目录
    • docker compose 部署 1.6.1
    • 修改配置项
  • 服务器
    • 复制 docker compose 配置文件和映射目录
    • 部署并启动
    • 检查数据和配置
  • 为什么要在虚拟机上进行升级操作?
    • 避免直接在服务器上操作导致数据出错或丢失。
  • 为什么要先升级到 0.4.4?
    • 这是 1.0 之前的最后一个版本,需要升级到此版本才能将数据导出。
  • 为什么导入到 1.2.0?
    • 印象中这个版本之后就不支持导入旧版本的数据了。
  • 为什么采用 docker compose 方式部署?
    • 方便数据备份和迁移,只需将映射的目录和 docker-compose.yml 备份好,即可进行数据迁移。

遇到的问题

迁移中也遇到了一些问题,记录在此。

首先是评论导入失败,看日志是有一条评论内容过长,在导入数据的时候失败了,同时导致后续几条评论也导入失败。后来尝试修改目标数据库的字段长度,成功导入进去。

其次,升级过程时间较久,可能会把虚拟机挂起,导致虚拟机时间不准,访问的时候出现问题。解决办法也很简单,对服务器时间进行校准即可。

还有就是升级过程中使用非 80 端口可能无法访问博客,我也没深究原因,只是把端口改为 80 即可。最后迁移到服务器上使用非 80 端口是没问题的。

关于需要检查的配置项,我这列举一下:

  • 配置文件
    • 数据库:选择 MySQL 数据库,更稳定可靠
    • 缓存:选择 level,即使重启服务也不会丢失数据
  • 数据库
    • OPTIONS 表:修改 birthday,用于展示建站天数
  • 博客设置
    • SMTP 服务:配置后测试
    • 评论设置
      • 打开所有开关
      • Gravatar 镜像源:如无法访问则寻找替代源
    • 附件设置:检查存储位置和配置
    • 其他设置:添加统计代码
  • 高级选项(博客设置右上角点击「切换到高级选项」)
    • 自定义页面前缀:p
    • API 服务:打开,填写之前的 Access key

总体来说先在本地虚拟机进行升级还是比较靠谱的,以后有类似的升级也会参考此方案。

截止到目前,升级已经有半个多月了,博客运行稳定,暂未发现有什么问题。

其实我升级的时候 Halo 2.0 正式版已经出了,但我还是选择了 1.6.1,主要原因还是求稳。博客毕竟是以内容为主,博客本身的版本并不是特别重要,只要能保证博客系统的稳定性和安全性就可以了,还是以内容产出为最终目标。

除此之外,我个人是一个妥妥的升级狂人,各种软件基本都是第一时间升级到最新版,如果升级到 hao 2.0,那么随着官方的更新,我也会忍不住更新,一方面占用时间,另一方面对内容产出也起不到什么作用,甚至需要花时间解决升级遇到的问题。

所以,我选择了 Halo 1.6.1,既能保证稳定性和安全性,又避免了紧跟最新版不断升级带来的焦虑感。

最后友情提示,升级最重要的就是数据备份,一定切记。只要有备份,再加上在虚拟机里操作升级,怎么搞都可以,大不了从头再来一遍。

以上就是本次博客升级的过程,欢迎沟通交流。

本文由 掘墓人 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。
最后编辑时间为: Apr 9,2023

2c867b6c99c5da99399ae1b13bb0ed41.jpg
欢迎关注我的公众号,及时获取最新文章推送。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK