ghost博客mysql_搭建Ghost博客系统

写在前面的话

很早就想搞个博客,最近有朋友跟我安利使用GHOST博客来创建个人博客。本周末正好有空,就开始动手整了。

没想到,开始上手做之后,才发现GHOST官网给的教程有一堆坑。

原本计划两个小时搞定博客安装并对外的,愣是搞了一个晚上。目前网站终于鼓捣出来,能够正常访问了。

趁现在,把那些填过的坑记录下。以便后来者能躲过去。

本次安装大致参考如下文章,在此感谢作者。http://docs.ghostchina.com/zh/installation/linux/

我的网站用Ghost博客作为应用服务,使用nginx在前端做一层隔离,也方便以后再继续扩展。数据存储采用了mysql。

故在正式开始安装GHOST之前,首先要准备好nginx和mysql。

因为Ghost博客是使用nodejs开发的,所以最开始需要安装nodejs相关的环境。

上述三个软件的具体安装过程网上已有很多教程,在此不赘述。

开始安装Ghost:

把基础软件装好后,现在就参照上文开始安装Ghost博客。

1. 首先是把ghost博客的最新的包下载下来:curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip

2. 解压到一个目录里面unzip -uo ghost.zip -d ghost

注:使用的服务器上可能并没有安装unzip服务,那要切到有权限的用户下,把unzip装一下。

3. 转到刚刚解压的目录cd /你的 Ghost 解压目录

4. 安装Ghostnpm install --production

至此,一切正常。

按照上文博客的说明,此刻,只需启用Ghost博客的服务即可,然而,当我输入 npm start的时候,开始报错了。。

对呀,还没配置数据库信息呢,当然不能启动起来了。可是怎么配置数据库呀?文章没有说。

于是搜索了下,网上有文章说在ghost程序目录下有config.example.js,可在此配置数据库相关信息。

然而,我的目录结构下面根本就没有这个文件,find全工程也没有这个文件名的文件。

那么,这个配置文件在哪里呢?回去看了下启动过程,发现程序有从ghost目录/core/server/conf加载文件。

于是顺藤摸瓜,果然,在ghost目录/core/server/conf/env下面找到了如下几个conf文件:config.development.json

config.production.json

config.testing.json

config.testing-mysql.json

5. 修改数据库配置信息

先改config.development.json

原来的文件长这样,在开发模式下,ghost使用了sqlite作为他的数据库,但是我使用的是mysql。

故需要修改"database"节点内容。{

"url": "http://localhost:2368",

"database": {

"client": "sqlite3",

"connection": {

"filename": "content/data/ghost-dev.db"

},

"debug": false

},

"paths": {

"contentPath": "content/"

},

"privacy": {

"useRpcPing": false,

"useUpdateCheck": true

},

"useMinFiles": false,

"caching": {

"theme": {

"maxAge": 0

},

"admin": {

"maxAge": 0

}

}

}

修改后的文件是这样子的,"database"节点内为修改过的内容:{

"url": "http://localhost:2368",

"database": {

"client": "mysql",

"connection": {

"host": "127.0.0.1",

"user": "yourdbuser",

"password": "yourdbpassword",

"database": "yourdatabase",

"charset":  "utf8"

},

"debug": false

},

"paths": {

"contentPath": "content/"

},

"privacy": {

"useRpcPing": false,

"useUpdateCheck": true

},

"useMinFiles": false,

"caching": {

"theme": {

"maxAge": 0

},

"admin": {

"maxAge": 0

}

}

}

按同样的逻辑,修改config.production.json,至此,数据库配置就修改好了。

修改好数据库配置,我马上再次运行npm start,可惜,仍然报错了。

报错信息如下:NAME:DatabaseIsNotOkError

CODE:MIGRATION_TABLE_IS_MISSING

MESSAGE:Please run knex-migrator init

其实这报错是因为数据库没初始化,该有的表呀什么的都没有建,所以应用启动不起来。

6. 数据库初始化

阅读报错信息后,我决定先跑一边knex-migrator init。

第一遍果然失败了,因为我都没装knex-migrator,于是搜索了,跑了下如下命令:npm install -g knex-migrator

把knex-migrator 装上了。然后回到ghost安装目录,执行数据库初始化。cd  yourpathtoghostfolder

knex-migrator init

OK。显示了一堆的create table等信息,终于把数据库初始化好了。

此刻再运行npm start,终于把网站起起来了。npm start

npm start是在development模式下启动应用。

按照以往部署的经验,production数据配置已经配置好了,应该可以启动production模式了。

于是我执行如下命令,企图在production模式下启动博客,然而,失败了。npm start --production

又报这个错,

NAME:DatabaseIsNotOkError

刚刚不是刚刚初始化过吗,怎么又不行了呢?

我赶紧登上Mysql上去看看。这一看是吓我一跳,development db上的库表都建好了。

但是,productiondb上的没有建好!!!

哎,原来这个knexi-migrator init 只给我初始化了development 数据库。

刚开始我试图搜索方案让knexi-migrator直接帮我把开发库和生产库初始化了,左试试右试试,最终还是没解决。

最后没法,我只能把produciton库的库表信息写到config.development.json里面,再跑一次knex-migrator init。

初始化表之后,再跑一次npm start --production,终于把production模式的博客也启动起来了。至此,博客安装完成。npm start --production

后面就是配置nginx了,此处略过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值