Ghost进阶系列:填坑总结

更新时间:2023年3月5日20点32分


除非 Ghost 有你不可替代的功能需求,或者喜欢上手高难度,否则我建议你放弃。

备份和更新

Docker 版不支持完整的 Ghost CLI,例如通过命令行进行备份,备份参考文档:如何重新安装幽灵

Docker容器更新办法:

一种方式是通过 Watchtower 自动更新,比较省事,但是可能会出问题,博客掉线了可能都不知道。

另一种方式是手动更新:

  • 初始搭建时选择 ghost:latest 这个名称的镜像。
  • 更新只需重新下载,镜像同名但是最新版本,新镜像将会替换旧镜像。
  • 然后将正在运行的 Ghost 容器复制一份。
  • 关闭旧容器并删除旧容器上的端口映射。
  • 启动新镜像的容器并选择复制旧容器的设置和数据,重新映射端口。
  • 博客已经运行在新容器上,数据没有损失。
  • 运行一段时间后再决定是否删除旧容器和镜像。这种更新方式比较安全。

扩展阅读:如何更新群晖Synology的Docker容器_哔哩哔哩_bilibili

问题1:每次系统重启或容器更新时 Ghost 有一定几率连不上 Mysql,有可能是 Mysql 的问题,再手动重启一下就好了。

问题2:如果 Mysql 进行过升级,后续更新 Ghost 时有可能出现迁移锁定的错误:

Unhandled rejection MigrationsAreLockedError: Migration lock was never released or currently a migration is running.

可以到数据库中执行表的更改操作以解锁:

UPDATE migrations_lock set locked=0 where lock_key='km01';

或者 Ghost CLI 命令:ghost update --rollback

Ghost 搭建静态网站

Ghost 没有使用页面静态化技术,因此需要一台 24 小时运行的服务器托管,常规 CDN 服务商也只能加速一些图片、js等静态文件。不过 Ghost Admin 可以当作 headless CMS 搭建静态站点,搭配 Gatsby 这类静态站点生成器(Gatsby 上有 Ghost 官方提供的基础模板)。

使用静态托管将失去一些功能,例如会员登录和访问级别控制。

会员和支付插件

会员体系是 Ghost 一大特点,这也是动态博客带来的好处:为不同类型的会员展示不同的内容,甚至一篇文章设置部分可见;与付费体系结合自动为订阅会员分配权限。事实上,Ghost 主要就是为个人出版而服务的,以会员订阅为收入来源是自媒体在贴片广告、软文带货之外的另一种选择,类似于国外的公众号。

Stripe 是在 Ghost 本地唯一集成的支付平台,此外允许以代码块或 Zapier (也是 Ghost 上唯一支持的第三方自动化工具)的形式接入其他支付系统,例如 PayPal,但不支持微信和支付宝,而无论是Stripe还是PayPal,都需要中国大陆以外的身份证、住址才能激活账户与收款功能,也许可以用中介转付平台(如万里汇),我没有试过。

是否适合国内用户?

Ghost 集成的第三方服务都是海外的平台,可见 Ghost 的应用生态不太符合大陆用户的习惯,尤其是开通付费和邮箱推送所需要的额外的第三方接口支持,麻烦不说,国内使用也并不能保证推送成功,可以说是水土不服,这大概也是很少中文博主使用 Ghost 的原因。

假如你不在乎前期准备多一些繁琐的操作,Ghost是一个很优秀的内容平台,我对比了许多动态博客平台,它在设计上的简洁优雅和功能的扩展性是我选择它的主要原因。


Ghost是一套开源的(博客)建站平台,这是一个持续更新的系列,用来列举一些官方文档和公开网络上尚未详细说明的问题与解决办法,您可以用标签 #Ghost 或搜索找到所有相关的文章。