转载请注明文章出处: tlanyan.me/ghost-exper…
今早醒来后看到有新邮件,提醒七点期间博客宕机了十几分钟。连上服务器看Nginx记录,发现期间有人用开源爬虫工具密集访问站点,导致后续请求耗时巨长,最终都返回了499错误码。前往服务器控制台查看CPU使用情况,七点时有一段陡峭的使用率飙升曲线。所以宕机是突发请求加WordPress性能引起。
不想多花钱升级服务器配置,解决办法之一是换用更性能博客软件。搜索了一圈,考虑到活跃度、维护等因素,动态博客貌似就Ghost一个可用项。Ghost是开源、专业的内容写作平台软件,基于NodeJS和Ember.js开发,官方称相对WordPress有10以上的性能提升。可安装到自己服务器上免费使用,也可使用官方提供的付费托管服务(价格每月79刀起)。作为一个技术人员,当然坚定走自行搭建这条路。
安装
根据官方文档,搭建Ghost博客分为四步:
- 新建一个用户,并赋予sudo权限。如果已经切换到root用户,可略过;
- 安装Nginx、Mariadb和NodeJS。这几个软件基本上是web开发必备,所以一般情况下也可略过;
-
安装Ghost-CLI。国内用户建议使用淘宝镜像安装,比如用cnpm就比npm快很多:
cnpm install -g ghost-cli
-
用Ghost-CLI安装Ghost:
ghost install
。这条命令应当在web目录下运行,例如/var/www/ghost
。安装过程中会提示输入站点网址、数据库等信息,按照提示操作即可。
官方的教程基于Ubuntu,在其他操作系统上可能会遇到一些其他问题,例如CentOS下
systemctl
命令总会执行出错。出错后会终端安装过程,可使用
ghost doctor
命令检查问题所在。
正常安装完成后会创建类似
ghost_ghost-tlanyan-me
的系统服务并启动。
ss -nltp|grep node
命令可查看Ghost是否启动以及监听端口。
配置
安装无误并正常启动后,可打开浏览器输入网址访问站点,会看到默认生成了几篇教程文章。此时站点还没有主人,需要先注册一个账号成为管理员认领。比较坑爹的是首页上没有后台的入口,需要手动在地址栏输入任意一个后台网址,由于站点没认领,最终会重定向到注册页面。根据经验尝试,一些可用的后台入口路径有:
login
、
admin
、
ghost
。例如输入
ghost.tlanyan.me/login
,站点无属主时会定向到注册页面,被认领后定向到登录界面。
按照提示输入账号等信息,最后一步需要填写团队其他成员的邮件,不填写无法下一步,这时只需随便输入一个电子邮箱即可,例如
[email protected]
。注册成功后便进入管理后台,可对站点做一些自定义设置。
在开始写作前需要做的一些设置有:
-
General
中设置站点标题、时区、Logo、封面等; -
Design
中新增菜单项; -
Code injection
中输入统计代码、自定义类等;
邮件设置比较重要,但在后台无法更改。在站点目录下找到Ghost的配置文件(生产环境下是
config.production.json
),根据官网教程配置邮箱信息并重启服务即可。
导入
如果之前在其他平台写作过并向用新站点代替旧站点,导入原有站点数据是有必要的。Ghost官方支持从WordPress导入数据,操作步骤如下:
-
登录到WordPress站点,安装Ghost插件并启用。注意是Ghost,不是
Ghost importer
,后者是导入Ghost站点数据到WordPress平台; - 在“工具”中找到“Export to Ghost”,拖到最后点击“Download Ghost File”,保存json文件;
- SSH连到服务器,打包上传的文件并下载;
-
将json文件中的
/wp-content/uploads/
替换成 `/content/images/; -
进入Ghost后台中的Labs,找到
Import content
,将json文件和打包的文件导入。
导入过程中一些数据可能会丢失,例如分类、评论。Ghost使用Disqus作为评论插件,启动评论功能需注册Disqus账号。如果需要导入WordPress评论,在WordPress上要安装Disqus插件,然后导出评论到Disqus。用新站点替换旧站点后,相同URL的评论会自动展示出来。