在百度云(BAE)上部署Ghost Blog -- 半自动化版
从BAE上把新创建的项目的git目录clone下来。然后把Ghost里面的一坨东西拷贝到当前目录好了,git add,commit,push一气呵成!
哎,怎么push不上去,这是因为push的内容过多,BAE的git设置了bufferSize,运行这个命令
git config --global http.postBuffer 157286400
ok, push成功,在BAE上刷新一下,快捷发布!

巨坑汇总
到目前位置我们离胜利还差剩下这些坑没填。- npm install: 这个是很显而易见的,ghost项目所依赖的第三方包我们没有安装,所以迅速的在本地敲下npm install,但是稍等。
- 不知道大家的本地环境如何,我用的是mac,这些依赖包里的sqlite是做文件存储的,这个包需要g++编译,mac端编译固然可以,但是我们的BAE是跑在linux上的,直接上传肯定不行。于是我就去搜索了BAE的node module的策略,官方说你在package.json中写好依赖,BAE会自动帮你安装,但是,实测无效。所以我自己找了台linux机器,在上面安装了node module然后上传到BAE上。
到这里BAE上的ghost应该就可以跑了。我之前也很开心的开始写博客,一切安好。 后来我改了点东西,重新发布了下。喜闻乐见的,博客没了。啥都没了。
这是什么问题呢,原来ghost默认是使用sqlite3作为文件存储,此文件就在代码的content目录中,但是BAE重新发布是会重新从git上拉此文件,所以被覆盖了。
这里有两个解决方法,
一个是用mysql代替,这里有详细的资料,http://developer.baidu.com/wiki/index.php?title=docs/cplat/bae/start
我没用第一个,因为穷。于是想了个很屌丝的法子,不需要改代码,在本地写博客,然后保存,再将本地内容push到BAE。没钱瞎折腾的同学可以就这样卑微的用着。
最后两个小Tip
package.json中的dependencies请删掉,不然BAE会尝试去安装,无一例外,发布失败。
ghost会有start up check,在BAE上会莫名失败,我看了下并没有什么卵用,就阉掉了。

ok,发布成功,看到Ghost美丽的脸庞。