• 技术
  • 如何快速升级 Ghost 博客至 4.0 版本?

在 2021 年 3 月 16 日,Ghost 推出了 4.0 版本;在这个版本,Ghost 作出了蛮大的变化,如新增了仪表盘、内置了电子邮件新闻通讯、正式发布会员资格和订阅(Memberships and subscriptions)等。早先也有基于 Ghost 搭建博客——静轩之别苑,今晚费了点功夫,将其升级至 4.0 ;期间也遇到些问题,在此分享出来,以便于有需要的朋友快速升级。

Ghost 官方,有给出升级指南,除了完整的备份外,还有两条重要信息:

  1. 更新到最新的次要版本:在更新到新的主要版本(例如,从 Ghost 3.x 更新到 Ghost 4.x)之前,您必须将站点更新为最新的次要版本(如果您使用的是 2.33.0,则需要先升级到 2.38.3(最新的 2.x 版本),然后再升级到4.x。您不需要通过每个主要版本进行升级);
  2. 导出您的内容和成员:首先从 Ghost Admin 的实验区域,导出所有帖子的 JSON 文件;您的成员可以从 Ghost Admin 的“成员”页面,导出到 CSV 文件;

其中,第一条比较重要;我的博客尚处于 2.25.4 版本,直接升级会引起些问题,不得不先升级至 2.38.3;然后导出 JSON 文件。因为的我基于 docker-compose 搭建,只需将 ghost:2.38.3 修改为 ghost:4.1.2 即可,如下代码所示:

version: '2'

services:
  ghost:
    image: ghost:4.1.2
    container_name: ghost
    hostname: ghost
    volumes:
      - ./content:/var/lib/ghost/content
      - ./config.production.json:/var/lib/ghost/config.production.json:z #overwrite default settings
    working_dir: /var/lib/ghost
    restart: always
    ports:
      - "2368:2368"
    environment:
      - NODE_ENV:production

volumes:
  ghost:

因为域名先前已经配置完毕(NGINX 等),打开博客地址,便能看到「ghost startup page」(如下图所示);重新走一遍账号注册,进入后台后,将导出的 JSON,再导入即可。

Ghost 4.0 Startup

在导入 JSON 时候,发起请求,会返回这样一个错误:

Request is larger than the maximum file size the server allows

前面提到,博客基于 NGINX 来提供服务部署,有资料表明,nginx http 核心模块中,文件上传默认最大大小为 1 MB,而我的 JOSN 已经有 2.9M,因而报错。可通过编辑 NGINX配置文件 /etc/nginx/nginx.conf, 在该 http 部分添加如下一行,将大小增加到 2m。

client_max_body_size 2m;

使用 nginx -s reload 命令重新加载 NGINX 配置文件,即可解决;详情可参见文章:Solving the maximum file size error on Ghost + NGINX


Ghost 4.0 hero:焕然一新, 更大的力量(Fresh new look,even more power.)可基于它:建立网站,发布帖子,发送新闻通讯,扩大受众,出售高级订阅,围绕您的创意作品创建可持续发展的业务。Ghost 4.0可以完成所有工作,还有更多其他功能。感兴趣的朋友,不妨考虑基于 Ghost 4.0 来搭建网站、博客,用新的方式,记录生活,分享感悟。下面是 Ghost 2.25 版本、以及 Ghost 4.0 版本的后台。

Ghost v2  Admin

Ghost v4  Admin

Write a Reply...