WordPress 迁移 hexo 小记

hello hexo!

起因

博客长草很久了。最近打算重新捡起来。

之前部署在 Hostus 上面的 vps 中,那个机型只有 512MB 内存和 20GB 的硬盘,在上面跑一个 WordPress 已经实在吃力了。
外加整套配置部署已经完全不记得当年是怎么配置的,也对 PHP 不甚了解以至于懒得更新 PHP 版本了,以至于 WordPress 本身也无法更新了。
WordPress 是把文件存储在服务器本身的,还需要做定时备份之类的。虽然有各种插件,但是服务器的性能如此摇摇欲坠 && WP版本如此之老以至于不能考虑各种插件了。
WordPress 本身没有对 markdown 做太多的支持,目前还是使用插件渲染 markdown,但是也有一定的局限性,例如语法的支持并不完整。
发现之前薅的腾讯云的 300 块钱代金券快要过期了,如果租个香港的丐版云服务器,都能租个半年,而且这个丐版也比目前的性能好多了。

基于以上的种种原因,打算把 blog 迁到 hexo 上面。

方案

*其实这个方案并不是一个最好的方案,一开始并不知道 hexo 的设计是渲染成静态页面

  • 使用 github repo 管理博客本身,包括不限于文章本身、主题、主题配置、主页相关资料
  • 使用腾讯云主机跑 hexo 本身,使用 hexo server对外提供服务
  • 使用本地 deploy.sh 脚本 ssh 到云主机上面更新。目前没有找到有 post-push hook 所以还是有手动的一步。可能可以考虑用 scp + pre-commit hook 的方案

过程

  1. 本地搭建 node 和 hexo 环境,此处 nodejs 和 hexo 官网都有描述,不再赘述。
  2. 生成 hexo 目录(hexo init),按照 hexo 的迁移文档,安装 hexo-migrator-wordpress 插件
  3. WordPress 控制台导出
  4. 用 hexo 迁移工具解析文档。这里遇到个小插曲,发现如果文章标题里面有 []字符会导致解析失败。
  5. 把整个文件夹搞上去 github,并部署到腾讯云服务器,并把它跑起来。
  6. 把 WordPress 的媒体库迁移过来

好处

  • 最大的好处是,薅到的腾讯云代金券可以在过期之前花完
  • 其次部署在香港的话,在国内不挂梯子的访问速度大大提高,之前是部署在美国那边,加载好久。
  • 可以用代码编辑器写 markdown 的姿势写 blog 了,不用再使用 WordPress 插件那并不好用的 markdown 编辑器了。有一种blog as code 的感觉了

TODO

  • 把 WordPress 上面的媒体迁移到该仓库里面
  • 丰富 theme 设置,主要是各种图片和个人信息啥的
  • 搞个 github page 的个人主页
  • 把 makdon.me 的域名解析指过去香港主机

后记

  • 发现原来 hexo 可以直接生成静态页面,那其实一开始不用买云服务器,可以直接用 github page 去承载流量(虽然好像有可能被墙)
  • 腾讯云也有静态托管方案,并且有教程+工具,直接把 hexo 的生成产物搞腾讯云上面去,还自带 cdn 的(不过不知道需不需要备案)
  • 现在的部署脚本就是把原来的进程杀掉再启动,没有引入 pm2 之类的保活 反正也没有用户,倒是之前 WordPress 更新/新增都可以做到 0 downtime
  • 等下次再薅到代金券就看看腾讯云的 cdn 怎么卖