升级Ghost的血泪历程

这么懒的一个人,实在是没想升级这个博客系统的,就算隔几天去ghost官网都能看到他们哭着嚎新版本又出来啦,有多么多么闪闪牛逼的功能,然并卵。

我就是这么懒,妈的,谁都别想安利我。

然而就在昨晚,我试图在一个二级域名上部署另一个node应用的时候,发现了严重的问题:去年部署ghost的时候,这狗日的必须用node0.1才能跑,高一点都不行,0.1这个版本真·太磕碜了,我猜任何新应用都没办法忍受这个low逼。好在最新的ghost可以运行4.2以上,5.0以下的node版本。没招了,先升级node,再升级ghost。

安装n来管理node版本
$npm install n
安装指定版本号
$n v4.2.4
然后把v4.2.4设置为默认node
$n
-----------------------
 ο node/4.2.4
-----------------------

好的,新的node应用跑起来了,一切ok。


然后ghost开始不乐意了,疯狂的报错,场面极其惨烈。呵呵哒,忍无可忍,升级了,按照的官网链接。 http://support.ghost.org/how-to-upgrade/
大概到了

npm install --production  

的时候,大崩塌开始了。 首先是这种

Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'  
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script']  
npm ERR!   errno: 3,  
npm ERR!   code: 'EACCES',  
npm ERR!   path: '/usr/local/lib/node_modules/coffee-script',  
npm ERR!   fstream_type: 'Directory',  
npm ERR!   fstream_path: '/usr/local/lib/node_modules/coffee-script',  

折腾许久,在stackoverflow上面找到了解决办法 http://stackoverflow.com/questions/18136746/npm-install-failed-with-cannot-run-in-wd

其实就是在package.json里面加入

"config": {
    "unsafe-perm":true
}

然后运行

$npm install --unsafe-perm

ok,在我轻描淡写这个小问题之前,花了差不多四个小时来解决这个。


接下来,开始报一些非常有序的bug,比如内存不足,阿里云直接安装失败,或者npm安装过程中直接卡死。 还有就是数不清的

unmet dependency  

甚至有一次,我的ssh连接都断了,网页版终端也连接不上。后面查了一下,是因为下载太猛,网络带宽达到了惊人的1.2M,然而我买的阿里云主机只有1M带宽o(︶︿︶)o

只好在esc控制台重启机器,等了大概五首歌的时间才重启成功。期间回忆起大一时windows电脑同时安装了金山毒霸和360的辛酸往事。顺便看了半集行尸走肉。

重启之后ssh就连接不上了,呵呵哒,我就知道事情没那么简单,网页终端看了一下,uwf被激活了,22端口虽然显示的已开放,但是显然这个贱人在骗我,果断

$ufw disable

然后电脑开一个ssh连接,成功,再来一发

$ufw allow 22
$ufw enable

无视它的警告,成功了。


然后就在我想要继续和npm抗争的时候,看到了下面这个 http://www.ghostchina.com/ghost-0-7-4-released/
时间太久,以至于我忘了在阿里云上面,用npm安装依赖无异于自寻死路。ghost中文提供了集成版本,不需要再去手动install了。次奥,一口老血喷在屏幕上。 下面是下载地址 http://www.ghostchina.com/download/


好了,现在依赖问题解决了。爆发吧小博客

$node index.js

网页也打得开,然后,我的所有文章都没有了,数据都没了。。。都没了,后台页面也打不开,打不开。

(:зゝ∠)

心灰意冷

沉默良久,意识到自己犯了一个傻逼错误。

$ NODE_ENV=production forever start index.js

运行前加上环境变量NODE_ENV=production

目前为止终于是弄好了,没看出来升级前后这个博客有啥变化。而且我心中有一个大写的

刘摸鱼

退堂鼓表演艺术家

杭州