转载请注明文章出处:https://itlanyan.com/ghost-experience

今早醒来后看到有新邮件,提醒七点期间博客宕机了十几分钟。连上服务器看Nginx记录,发现期间有人用开源爬虫工具密集访问站点,导致后续请求耗时巨长,最终都返回了499错误码。前往服务器控制台查看CPU使用情况,七点时有一段陡峭的使用率飙升曲线。所以宕机是突发请求加WordPress性能引起。

不想多花钱升级服务器配置,解决办法之一是换用更性能博客软件。搜索了一圈,考虑到活跃度、维护等因素,动态博客貌似就Ghost一个可用项。Ghost是开源、专业的内容写作平台软件,基于NodeJS和Ember.js开发,官方称相对WordPress有10以上的性能提升。可安装到自己服务器上免费使用,也可使用官方提供的付费托管服务(价格每月79刀起)。作为一个技术人员,当然坚定走自行搭建这条路。

安装

根据官方文档,搭建Ghost博客分为四步:

  1. 新建一个用户,并赋予sudo权限。如果已经切换到root用户,可略过;
  2. 安装Nginx、Mariadb和NodeJS。这几个软件基本上是web开发必备,所以一般情况下也可略过;
  3. 安装Ghost-CLI。国内用户建议使用淘宝镜像安装,比如用cnpm就比npm快很多:cnpm install -g ghost-cli
  4. 用Ghost-CLI安装Ghost:ghost install。这条命令应当在web目录下运行,例如/var/www/ghost。安装过程中会提示输入站点网址、数据库等信息,按照提示操作即可。

官方的教程基于Ubuntu,在其他操作系统上可能会遇到一些其他问题,例如CentOS下systemctl命令总会执行出错。出错后会终端安装过程,可使用ghost doctor命令检查问题所在。

正常安装完成后会创建类似ghost_ghost-tlanyan-me的系统服务并启动。ss -nltp|grep node命令可查看Ghost是否启动以及监听端口。

配置

安装无误并正常启动后,可打开浏览器输入网址访问站点,会看到默认生成了几篇教程文章。此时站点还没有主人,需要先注册一个账号成为管理员认领。比较坑爹的是首页上没有后台的入口,需要手动在地址栏输入任意一个后台网址,由于站点没认领,最终会重定向到注册页面。根据经验尝试,一些可用的后台入口路径有:loginadminghost。例如输入ghost.tlanyan.pp.ua/login,站点无属主时会定向到注册页面,被认领后定向到登录界面。

按照提示输入账号等信息,最后一步需要填写团队其他成员的邮件,不填写无法下一步,这时只需随便输入一个电子邮箱即可,例如test@abc.com。注册成功后便进入管理后台,可对站点做一些自定义设置。

在开始写作前需要做的一些设置有:

  1. General中设置站点标题、时区、Logo、封面等;
  2. Design中新增菜单项;
  3. Code injection中输入统计代码、自定义类等;

邮件设置比较重要,但在后台无法更改。在站点目录下找到Ghost的配置文件(生产环境下是config.production.json),根据官网教程配置邮箱信息并重启服务即可。

导入

如果之前在其他平台写作过并向用新站点代替旧站点,导入原有站点数据是有必要的。Ghost官方支持从WordPress导入数据,操作步骤如下:

  1. 登录到WordPress站点,安装Ghost插件并启用。注意是Ghost,不是Ghost importer,后者是导入Ghost站点数据到WordPress平台;
  2. 在“工具”中找到“Export to Ghost”,拖到最后点击“Download Ghost File”,保存json文件;
  3. SSH连到服务器,打包上传的文件并下载;
  4. 将json文件中的 /wp-content/uploads/ 替换成 `/content/images/;
  5. 进入Ghost后台中的Labs,找到Import content,将json文件和打包的文件导入。

导入过程中一些数据可能会丢失,例如分类、评论。Ghost使用Disqus作为评论插件,启动评论功能需注册Disqus账号。如果需要导入WordPress评论,在WordPress上要安装Disqus插件,然后导出评论到Disqus。用新站点替换旧站点后,相同URL的评论会自动展示出来。

导出过程会有一些限制和警告,请根据提示自行处理。

完成设置和导入后,点击“New story”开始新平台的写作之旅吧!

总结

总结来说,Ghost的优点如下:

  1. 简单、简洁,专注博客写作;
  2. 轻量、高性能;
  3. SEO友好、页面自适应。

不足之处也很明显:

  1. 非Ubuntu安装过程略显麻烦。作为一个经验丰富的Linux玩家,安装过程中尚且碰到多次错误,耗时将近半小时,对新手困难可想而知(用Ubuntu也许很简单)。从官网信息看,官方的主要精力是推广付费托管服务;
  2. 插件少。除了内置的几款,没找到其他插件;
  3. 功能少。图片、附件、评论、分类等功能均无或依赖第三方;
  4. 主题少。Ghost的官方主题站仅有三款免费主题。

安装和体验花费一个多小时,整体感觉不如人意,最终未转移到新平台上。Ghost版的本博客展示网址为:http://ghost.tlanyan.pp.ua

参考

  1. https://docs.ghost.org/docs
  2. https://help.ghost.org/article/21-migrating-from-wordpress-to-ghost
  3. https://www.ghostforbeginners.com/migrating-your-wordpress-blog-to-ghost/