Ghost博客坎坷安装过程 2014-12-03 13:58:18 ## 缘起 由于工作原因,原来自己开发的[Marked-blog](https://github.com/stanzhai/marked-blog)好久没有继续更新了,这也导致我的个人博客上的文章很久没有更新,所以我的文章就这么一直写在[博客园](http://www.cnblogs.com/jasondan/)上了。不过积累和总结还是要有的,这对于成长的很重要(fei hua)。 相信每个热爱互联网的同学,都希望有一个属于自己的独立博客系统,在这么一片小天地里,记录着自己点点滴滴的成长,这也是我建立[这个博客](http://blog.zhaishidan.cn)的目的。 最近决定换工作了,工作暂时缓了下来,想着得把自己的博客弄一弄了,考虑到新的工作我还需要准备一些时间学习新的东西,加上女朋友那边还得给她帮帮忙,自己也没那么多空闲时间来完善原来的Marked-blog了,于是便开始了博客系统的调研。 考虑在内的博客系统有这么几个: **WordPress**:这个应该是全球独立博客应用最多的了把,原来用过,感觉系统过于庞大了,不在考虑 **typecho**:它还是蛮招人喜欢的,简洁清新,不想WordPress那么繁琐,不过是php的,对php不大感冒,修改起来不方便,也不再考虑他了 **[ghost](https://github.com/TryGhost/Ghost)**:它就是今天的主角啦,nodejs开发的,性能就不多说啦,最主要是的原生支持Markdown语法(这个我喜欢),再有就是自己也热爱nodejs,修改起来也方便(当然如果只是用来写博客也不要修改他的底层代码了)。当然ghost也有很多问题,可以到[这里](http://www.bokeyy.com/post/ghost-install-in-vps-solution-in-china.html)看看,不过对我而言,这都不用重要了,谁让他用起来这么爽呢! ## 坎坷的安装 nodejs玩的时间也挺长了,想想一个小小的博客系统应该很快能够搞起来,可惜事与愿违,折腾的过程中遇到好多麻烦。 安装过程一定要根据官网的说明来弄,不然会遇到很多坑的。 最好把ghost安装在Linux系统上,我用的是阿里云的Ubuntu系统,Windows没试过,应该会有更多的坑。 ### 版本问题 因为前阵子研究ES6的特性,我用的nodejs的版本都是v0.11.x的,安装ghost的时候也没有注意这个问题,npm install的过程编译sqlite3出现了各种问题,貌似还有一些其他的包安装有问题。这里就不一一列举了,总之我们需要使用v0.10.x版本的nodejs才行。 为了让多个版本的node并存,我用了[nvm](https://github.com/creationix/nvm)来管理node。安装和使用方法也比较简单,直接根据官方文档来操作就行了。 ### 运行报错 首次运行初始化时,提示: ``` Uncaught TypeError: Cannot read property 'statusCode' of undefined ``` 看了下和这个错误相关的代码,在`ghost/core/server/models/user.js`第868行附近,研究了下,原来是从www.gravatar.com获取头像的,最近各种国外的网站被墙,难免访问不上,把以下代码注释掉就可以了: ``` //if (response.statusCode !== 404) { // userData.image = gravatarUrl; //} ``` ### 以production模式运行 直接通过`npm start`启动ghost是以development模式启动的,线上运行的时候需要使用production模式,通过`NODE_ENV=production npm start`启动即可。 ### 以服务的模式启动 使用ssh连到服务器上,直接启动ghost,如果断开ssh你会发现ghost也停了,这是由于ssh的会话被停止导致的。我们可以使用forever让ghost一直运行。 安装forever: `npm install forever -g` 用forever运行ghost:`NODE_ENV=production forever start index.js` 这次关掉ssh,ghost就不会停止了。 终于把博客折腾好了,以后可以欢乐的写博客了,顺便截图纪念一下: ![ghost](/api/file/getImage?fileId=5ab5b924ba8bc2481f000026) 2014年12月03日 非特殊说明,均为原创,原创文章,未经允许谢绝转载。 原始链接:Ghost博客坎坷安装过程 赏 Prev 那些没来得及看的好电影 Next 汇编语言学习——寄存器