最新消息:蔓草札记的微信公众号开通了,赶紧在微信通讯录公众号中搜索“蔓草札记”关注下吧 :)

在 Windows 和 Heroku 上搭建 Ghost 博客

博客经验 2952浏览 1评论

Ghost 是在著名的众筹网站 KickStarter 上众筹成功后,开发的基于 Node.js 的开源博客平台,其目标就是尽量简化并专注于博客,直指现在流行但已日趋臃肿的 Wordpress。2013 年 10 月 14 日,Ghost 在面向 6000 名 KickStater 支持者推出三周后,终于面向公众开放了。

Ghost 比原来的 Wordpress 有着先天的优势,因为它是一个全新的平台,可以使用优秀的 Node.js 平台而不会有任何历史遗留问题。相比较,Wordpress 发展到现在,在代码架构、具体实现、设计、决策过程到开源协作模式都已经变得过时而臃肿,加上大量第三方插件对特定实现的依赖,开发效率变得极低,任何大改动都是牵一发而动全身。

在 Heroku 上搭建 Ghost 博客 -00

我是在 Ghost 0.3.3 版本发布后不久注意到这个博客平台的,当时就想着在 Heroku 上搭建一个玩玩,但鉴于 Ghost 不是很成熟,并且官网还提供了一个月的试用,也就作罢了。不过试用后,确实有耳目一新的感觉。现在试用到期了,Ghost 版本也更新到 0.4.2 了,就想再鼓捣一个可以接着玩的地方。

这个是我搭建在 Heroku 上的博客,大家可以体验下:

Heroku :http://mancao.herokuapp.com/
绑定域名:http://ghost.xuhehuan.com/

在 Heroku 上搭建 Ghost 博客,可以首先在本地搭建好,然后修改再部署到 Heroku 上,下面就按照这个流程一步步说明。

一、在 Windows 上搭建 Ghost 博客

1、首先打开网页http://nodejs.org,点击页面中的‘INSTALL’按钮,将会下载一个‘.msi’文件下载,下载完成后点击这个 msi 文件来安装 Node 和 npm,直到屏幕上显示你已经成功安装 Node.js;

2、在https://ghost.org/download/上点击‘Download Ghost’下载最新的 Ghost 版本(该页面已被强,请自备梯子或下载我备份在百度网盘的 0.4.1 版本),然后解压 Ghost 到指定位置,如 G:ghost;

3、打开 cmd 命令行窗口,切换到 Ghost 所在文件夹,然后在命令行依次输入下面两条命令:

npm –registry http://registry.cnpmjs.org info underscore
npm install –production

一切顺利的话,你会看到类似下面的情况:

在 Heroku 上搭建 Ghost 博客 -01

注:npm 所定义的软件源有出现在 GFW 的列表中,第一行命令就是使用国内 npm 镜像来防止安装这些包失败,不然在经历漫长的等待后可能会看到失败的信息。

4、接下来就启动 Ghost 了, 输入命令,

npm start

在 Heroku 上搭建 Ghost 博客 -02

然后在浏览器中输入下面地址就可以看到已经搭建好的 Ghost。要停止浏览,就切换到命令行窗口,按 Ctrl+C,输入‘y’终止批处理操作。

127.0.0.1:2368

在 Heroku 上搭建 Ghost 博客 -03

至此,在 Windows 上搭建 Ghost 的部署就全部结束了,还是挺 easy 的,下面就是修改过和部署到 Heroku 上了。

二、修改 Ghost 博客为部署到 Heroku 做准备

由于 Heroku 使用的数据库是 PostgreSQL 而不是 SQLite3,所以在完成本地搭建后,我们还需将这个 Ghost 博客通过下面几个步骤进行修改。

1、打开 Ghost 根目录下的package.json,查找”sqlite3″: 这一行,并将其修改为

2、在 Ghost 根目录下新建一个名为Procfile的文件,里面输入以下内容,让 Heroku 可以启动 Ghost;

这两处的修改和下面第三部分中对 config.js 文件的修改,大家可以参考我修改好的示例文件,放在百度网盘(点击下载)。

三、将 Ghost 博客部署到 Heroku

修改完本地的 Ghost 后,就要准备将博客部署到 Heroku 上了。

1、注册 Heroku,https://id.heroku.com/login,速度慢的话就把代理挂起来,这里假设大家都用过 Heroku 了,还没有注册或使用过 Heroku 的,先去 Google 或百度看些简单的教程吧;

2、打开https://toolbelt.heroku.com/,点击‘Heroku Toolbelt for Windows’来下载和安装 Heroku Toolbelt,这个是实现在命令行窗口下登录和管理 Heroku;

3、打开http://git-scm.com/,点击‘Download for Windows’,下载 Windows 版本的 git 并安装;

4、打开 CMD 命令行窗口,然后输入下面命令,按照提示输入你的用户名和密码登录上 heroku,然后切换到刚才的 Ghost 目录下;

在 Heroku 上搭建 Ghost 博客 -04

5、将 Ghsot 目录初始化成一个 git 仓库,依次输入命令:

6、用命令创建一个新的 Heroku APP

或者用下面命令关联一个已经创建好的 APP,里面红色的 project 要换成已创建的具体的 APP 名字

然后用下面命令可以看当前目录的 git 关联属性,也就是你的 Ghost 博客要上传的地方

git remote -v

我的输入后是下面这个样子,里面的 mancao 对应的是我的 APP 的名字。

在 Heroku 上搭建 Ghost 博客 -05

7、输入命令为 Heroku APP 增加 PostgreSQL 数据库

这条命令完成后会输出一条类似“Attached as HEROKU_POSTGRESQL_JADE_URL”的信息,然后你需要根据 JADE 的具体内容来输入命令,可以参考下面图像;

在 Heroku 上搭建 Ghost 博客 -06

8、接下来打开 Ghost 目录下的config.js文件:

(1)修改里面的

url: ‘http://my-ghost-blog.com’,

为你实际的博客地址,如我的是绑定域名的

url: ‘http://ghost.xuhehuan.com’,

(2)修改里面的

(3)修改里面的

database: {

client: ‘sqlite3’,

connection: {

filename: path.join(__dirname, ‘/content/data/ghost.db’)

},

debug: false

},

database: {

client: ‘postgres’,

connection: {

host: process.env.POSTGRES_HOST,

user: process.env.POSTGRES_USER,

password: process.env.POSTGRES_PASSWORD,

database: process.env.POSTGRES_DATABASE,

port: ‘5432’

},

debug: false

},

保存,关闭文件。

9、设置数据库信息。登录 Heroku 的网页,找到所用的 APP,然后点击 Add-ons 中所用到的数据库,

在 Heroku 上搭建 Ghost 博客 -07

两次单击后可以看到数据库的配置信息

在 Heroku 上搭建 Ghost 博客 -08

10、依次在命令行窗口设置上图看到的各个数据信息,命令中的 host 等红色信息都要换成图中后面对应的具体信息;

11、将代码部署到 Heroku;

如果一切顺利,这时你就可以通过访问 Heroku 的 APP 地址来访问你的 Ghost 博客了。

在 Heroku 上搭建 Ghost 博客 -09

可能碰到的错误:

如果你在运行‘git push heroku master’时碰到了如下的错误:

这通常是由于在初始化登录 Heroku 时,ssh key 没有放到服务器上,可以通过下面命令来改正这个问题:

add ~/.ssh/id_rsa.pub

里面~的路径要修改成 Windows 系统里面对应的实际路径,通常是打开 cmd 窗口后的默认路径,如:C:\Documents and Settings\xhh>。

后记:

1、在 Heroku 上实验,使用 Ghost0.4.1 可以正常运行,Ghost0.4.2 无法正常工作;

2、Heroku 和 Nodejitsu 提供的 Node.js 主机与 Ghost 并不兼容。它们可以工作,但会删除你的文件,所以你上传的图片和数据库的内容都会消失;Heroku 支持 MySQL 数据库,你可以使用它来弥补这个问题,但你仍然会丢失一些上传的图片。


欢迎转载,转载请注明出处:蔓草札记 » 在 Windows 和 Heroku 上搭建 Ghost 博客

♥ 喜欢 0 赞赏
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 貌似是 Node.js 版本的问题,新的 Ghost 也可以放到 Heroku
    mRNA2年前 (2016-02-06)回复