Ghost 开源博客平台

Ghost 是一个简洁、强大的写作平台。你只须专注于用文字表达你的想法就好,其余的事情就让 Ghost 来帮你处理吧。

Ghost+BAE+七牛云存储部署教程

概述

小伙伴们想用ghost博客系统的苦于国内找不到好的nodejs服务器,而国外的vps之类又会有各种问题,在此向各位推荐BAE.BAE的执行单元环境根据BAE本地开发环境来推测应该是Ubuntu server 12.04LTS,想深入研究的朋友可以自己下载BAE本地开发环境来研究,不罗嗦了下面开始介绍如何在BAE上部署Ghost博客系统。

部署步骤

1、部署前准备:

首先当然是安装Node.js,Node.js官方下载 ,接下来是下载 Ghost博客系统 ,nodejs安装好然后Ghost解压,当然要有百度的开发者帐号,到BAE云平台上面进入开发者服务管理,创建应用获取到svn地址(或git),相信大家这方面不需要指导了,接下来开始,首先要把BAE上的空白工程下载下来,里面的app.conf和server.js需要动,然后Ghost博客系统内的文件直接解压到这个目录里,有提示复制覆盖的选覆盖就好。

2、配置属性

属性配置在Ghost博客来说很简单,只是部署在BAE上面有写需要注意 ,按照官方的说明文档,config.sample.js中的配置需要做一些更改:

  1. 端口2368和2369都要改成18080(因为BAE环境中,lighttpd服务和Node.js server之间的通讯端口是18080)
  2. 由于sqlite3的部分文件存储在亚马逊的云存储上,而BAE无法连接到,因此将其放到了百度云存储上。另外,BAE提供的是临时文件系统,sqlite3存储在本地文件,发生执行单元迁移时文件会丢失,可以使用MySQL替换sqlite,所以配置节中需要将配置改为使MySQL数据库(这里使用BAE提供的共享mysql就可以了)。
  3. 添加七牛云存储,彻底解决BAE上静态文件的问题,推荐去Ghost中文网下载七牛云版(需要七牛云账号,请自行注册),加入七牛云存储的配置。

配置文件productiondevelopment段修改如下(目前还未找到办法给 BAE 配置 NODE_ENV 环境变量,所以需要将 developmentproduction 段全部配置成一样的信息):

    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {


        database: {
            client: 'mysql',
            connection: {
                host: 'sqld.duapp.com',
                port: 4050,
                user: '这里填入你的ak', //your ak
                password: '这里填入你的sk', //your sk
                database: '这里填入你的数据库名',//your dbname
                charset: 'utf8'
            },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '18080'
        }
        qiniu: {
            bucketname: '这里是七牛云的目录名',
            ACCESS_KEY: '这里填入七牛云的ak',
            SECRET_KEY: '这里填入七牛云的sk',
            root: '/image/',
            prefix: 'http://ghostimg.qiniudn.com'
        }
    }

将此配置信息复制一份,替换 development 段。

3、安装依赖

根据本人的使用,BAE上部署Ghost需要在本地安装好包的依赖,而不是像官方文档上的方式,首先需要注意的一点是,这里我们已经使用mysql,那么在包的依赖中要删掉sqlite3的配置节.然后在本地运行npm install --production命令在本地安装好包的依赖。

然后用BAE提供的mysql.tgz替换node_modules中的mysql。

4、修改 package.json

根据BAE环境的要求,需要删除 package.json 中的 dependenciesoptionalDependencies 和 devDependencies项,最后文件内容如下:

{
    "name"        : "ghost",
    "version"     : "0.4.2",
    "description" : "Just a blogging platform.",
    "author"      : "Ghost Foundation",
    "homepage"    : "http://ghost.org",
    "keywords"    : [
        "ghost",
        "blog",
        "cms"
    ],
    "repository"  : {
        "type": "git",
        "url": "git://github.com/TryGhost/Ghost.git"
    },
    "bugs"        : "https://github.com/TryGhost/Ghost/issues",
    "contributors": "https://github.com/TryGhost/Ghost/graphs/contributors",
    "licenses"    : [
        {
            "type": "MIT",
            "url": "https://raw.github.com/TryGhost/Ghost/master/LICENSE"
        }
    ],
    "main": "./core/index",
    "scripts": {
        "start": "node index.js",
        "test": "./node_modules/.bin/grunt validate --verbose"
    },
    "engines": {
        "node": "~0.10.0"
    },
    "engineStrict": true,
}

结束

到此时,所有的安装和配置基本完成,直接使用svn或者git将本地文件全部提交至BAE,然后发布就可以了,可以体验自己的Ghost博客了!说点题外话,Ghost博客到现在的0.4.2的版本还不是很完善,功能上还是很简单,希望与大家多多交流.

参考资料

BAE3.0 新手入门

注: 原文内容有部分错误,在这里一并改正了。


原文地址:Ghost+BAE+七牛云存储教程

王赛
关于作者 王赛