在 2021 年 3 月 16 日,Ghost 推出了 4.0 版本;在这个版本,Ghost 作出了蛮大的变化,如新增了仪表盘、内置了电子邮件新闻通讯、正式发布会员资格和订阅(Memberships and subscriptions)等。早先也有基于 Ghost 搭建博客——静轩之别苑,今晚费了点功夫,将其升级至 4.0 ;期间也遇到些问题,在此分享出来,以便于有需要的朋友快速升级。
Ghost 官方,有给出升级指南,除了完整的备份外,还有两条重要信息:
- 更新到最新的次要版本:在更新到新的主要版本(例如,从 Ghost 3.x 更新到 Ghost 4.x)之前,您必须将站点更新为最新的次要版本(如果您使用的是 2.33.0,则需要先升级到 2.38.3(最新的 2.x 版本),然后再升级到4.x。您不需要通过每个主要版本进行升级);
- 导出您的内容和成员:首先从 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,再导入即可。
在导入 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 版本的后台。