Ghost 进阶配置
2016-07-14

一个有理想有抱负的 Ghost 博客搭建起来后,要做的日常维护有两方面:

  1. 邀请作者、管理内容
  2. 备份数据、美化界面

先说说第一部分。Ghost 搭建起来的是多人博客,不同作者的博文会汇集到主页上。虽然每个作者也有自己的个人页,但可定制程度不如当年百花齐放的博客时代。

老印象中的博客,用户可以主动注册成为博主,有一个花里胡哨的个人主页让你像搞园艺那样天天去忙活。几十上百套主题皮肤,挑到眼花。还有相册、音乐播放器、友链,这都是标配。可是在 Ghost,这些全都没有!

首先,Ghost 是邀请制,每个作者都必须收到邮件邀请才能注册,成为作者(author)、编辑(editor)、管理员(administrator)这三种角色中的一个。

如何打开 Ghost 的管理面板?只要在博客首页地址后面加/ghost路径,就会进到管理面板。第一个打开管理面板页注册的人就是博主。博主给其他人分配了权限,其他人便可以通过同样的 /ghost后缀进入管理面板。例如在本地调试的时候,若 config.js 里的 url 参数是http://localhost:2368,那么打开管理面板的地址就是http://localhost:2368/ghost

开发相关设置

开发的工作量主要在前期:设置开发环境、版本控制;生产环境配置 Nginx、数据库自动备份。后期没什么可做的,就是优化优化主题。

用你的 IDE 打开 Ghost 解压后的那个目录,这就是你的项目根目录了。提交到 git 需要忽略一些文件,下面列出的几项加到 .gitignore 文件里:

node_modules/
*.log
content/data/
content/images/

开发环境和生产环境代码相同、数据不同,上面的content/data/存放 sqlite 数据库文件,content/images/存放上传的图片文件,这都属于数据内容,所以不应该提交进代码。

node_modules/目录里是项目所依赖的包,忽略里面的内容,是因为不同平台上安装的二进制包可能不同,所以需要在各环境下执行 npm install。

content/themes是主题样式的目录,内置了简洁漂亮的 casper 主题,主题不仅有 css 样式,还有 hbs 模板文件,理论上可以做到百分之百的定制。

部署环境设置

Nginx 配置

Nginx 配置上,有一大一小两个坑。

先说大坑,配置完proxy_pass如果不加proxy_set_header访问网站会因为重定向太多而出错,完全没法用!解决的方法是加上proxy_set_header ,下面有配置代码。

再说小坑,Nginx 默认允许上传的文件大小是1M,如果你要上传一张照片,很可能就超了限制。解决的方法是指定client_max_body_size为一个更大的数值比如10M。下面是配置文件示例,在跑 Ghost 的那个 server,加上以下配置:

server{
    client_max_body_size 10m;
    
    location / {
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:2368;
    }
}

到此,技术上的坑基本填平,可以愉快地邀请作者了。

END