惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
V
Visual Studio Blog
美团技术团队
L
LINUX DO - 最新话题
Last Week in AI
Last Week in AI
雷峰网
雷峰网
博客园_首页
腾讯CDC
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
J
Java Code Geeks
W
WeLiveSecurity
Apple Machine Learning Research
Apple Machine Learning Research
Spread Privacy
Spread Privacy
博客园 - 聂微东
量子位
Recent Announcements
Recent Announcements
S
Schneier on Security
O
OpenAI News
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
T
Tailwind CSS Blog
S
Security Affairs
Y
Y Combinator Blog
P
Privacy International News Feed
Hacker News: Ask HN
Hacker News: Ask HN
Stack Overflow Blog
Stack Overflow Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
U
Unit 42
Webroot Blog
Webroot Blog
Vercel News
Vercel News
Simon Willison's Weblog
Simon Willison's Weblog
B
Blog RSS Feed
S
Secure Thoughts
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
DataBreaches.Net
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
S
Security @ Cisco Blogs
The Hacker News
The Hacker News
The GitHub Blog
The GitHub Blog
C
CERT Recently Published Vulnerability Notes

掘墓人的小铲子

新玩意:一加 15 | 掘墓人的小铲子 AI 编程初体验:Trae 帮我写代码 | 掘墓人的小铲子 微信内访问网站提示“非微信官方网页,请确认是否继续访问” | 掘墓人的小铲子 薅羊毛网站 | 掘墓人的小铲子 微信红包封面 | 掘墓人的小铲子 日本东京见闻 | 掘墓人的小铲子 新玩意:奥海 140W 氮化镓青春版充电器 | 掘墓人的小铲子 新玩意:云鲸智能洗地机 F1 冠军版 | 掘墓人的小铲子 新玩意:Windows Hello 指纹识别器 | 掘墓人的小铲子 电脑死机问题排查 | 掘墓人的小铲子 新玩意:WESCOM 31.5 英寸 4K 显示器 文章被“抄袭”了 | 掘墓人的小铲子 新玩意:乐歌 E2 升降桌 | 掘墓人的小铲子 香港一日游 | 掘墓人的小铲子 跨平台开发之 Quasar | 掘墓人的小铲子 跨平台开发之 Tauri | 掘墓人的小铲子 三星 Note4 超级省电模式之 Kindle 看书 使用 Jpom 自动构建和部署项目 | 掘墓人的小铲子 新冠肺炎症状记录 | 掘墓人的小铲子 开源数据备份工具 Duplicati | 掘墓人的小铲子 使用 NotionNext+Notion+Vercel 部署我的木刻网站 | 掘墓人的小铲子 使用 Vercel 快速部署前端项目 | 掘墓人的小铲子 企业共享办公好助手:可道云 kodbox | 掘墓人的小铲子 新玩意|一加 Ace Pro | 掘墓人的小铲子 使用 Photo Stream 部署相册 | 掘墓人的小铲子 新玩意|罗技 MX Master 3 鼠标 2021 年终总结 | 掘墓人的小铲子 新玩意|Bcase 数据线磁吸收纳器 | 掘墓人的小铲子 我的习惯养成计划:五分钟规则+打卡 | 掘墓人的小铲子 我用66张照片记录过去一年做过的饭菜 | 掘墓人的小铲子 送你一个虎年红包封面:虎虎生威 | 掘墓人的小铲子 新玩意|海氏K3空气炸锅烤箱 | 掘墓人的小铲子 新玩意|Yeelight易来 智能人体感应灯小夜灯 | 掘墓人的小铲子 超稳的高颜值支架:海备思铝合金手机支架 | 掘墓人的小铲子 没有了无限免费存储空间,谷歌相册还能继续用吗? | 掘墓人的小铲子 置物架改造 | 掘墓人的小铲子 信用卡还款宽限期 | 掘墓人的小铲子 Nginx 开启 gzip 压缩 | 掘墓人的小铲子 记一次意外割手 | 掘墓人的小铲子 Kindle 售后换新记 | 掘墓人的小铲子 记一次麻烦的银行办卡经历 | 掘墓人的小铲子 记一次差点被集中隔离的回家之旅 | 掘墓人的小铲子 自己动手做置物架 | 掘墓人的小铲子 2020 年终总结 | 掘墓人的小铲子 自己动手部署内网穿透:frp | 掘墓人的小铲子 免费内网穿透服务推荐 | 掘墓人的小铲子 怎么提醒女朋友给手机充电? | 掘墓人的小铲子 阿里云盘和 Teambition 网盘 | 掘墓人的小铲子 记一次成功的网购维权:我在 12315 投诉天猫超市 | 掘墓人的小铲子
博客升级 | 掘墓人的小铲子
2023-04-09 · via 掘墓人的小铲子

Halo 博客

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

升级原因

我的博客使用的是「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,既能保证稳定性和安全性,又避免了紧跟最新版不断升级带来的焦虑感。

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

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

本文由 掘墓人 创作,采用 CC BY-NC-ND 4.0 DEED ,转载或翻译请注明出处。
最后编辑时间为: 2023年04月9日

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