Centos环境下搭建Ghost博客系统

最近想搭建一个Ghost的个人博客系统,在网上搜到了很多关于如何搭建Ghost系统的文章和方法,但是基本上不是过时了就是不能用的。刚开始我是按着别人给的流程在阿里云云主机上捣鼓的,遇到不少的问题,并不能完整成功的搭建出可用的Ghost博客系统。这对于我来说可不是一个很好的消息,因为我一旦决定想做某一件事,必定抱着“不到黄河心不死”的决心。再说了我不能半途而废就放弃自己的想法,所以深入的研究网上许多大牛们给出的方案,加上通宵达旦不懈的努力,终于走出了这个坑!心想着肯定还有很多朋友会遇到这个问题,所以写下此博文与大家分享一下,希望能帮到你们。

欢迎点击我的博客前往查看效果。

我的配置信息

我个人采用Ghost + MySQL + Nginx来搭建的,以下是具体的版本信息:

  • 系统版本:Centos6.8 64位
  • MySQL版本:5.1.73
  • Nginx版本:1.10.3
  • Node版本:node-v0.12.18
  • Ghost版本:Ghost v0.7.4 full(zh)

安装环境准备

yum update                 #更新为最新的yum源
yum install -y vim         #安装vim,不安装则用vi  

MySQL的安装配置

开始安装

Ghost-0.7.4 full(zh)默认使用sqlite3数据库,但是sqlite对海量数据的读写效率比较慢,影响页面加载的速度从而造成用户的体验感不佳。下面是安装MySQL过程:

yum install mysql mysql-server           #安装MySQL服务
service mysqld start                     #启动MySQL服务
mysql_secure_installation                #根据实际需要配置MySQL密码,这里不详细说明
service mysqld restart                   #配置完后重启生效
chkconfig mysqld on                      #设置MySQL开机自启
配置文件

编辑MySQL的配置文件my.cnf,修改字符编码为utf-8,让博客系统支持中文,不出现一堆蚂蚁等火星文字,毕竟博客还是以中文为主的。

vim /etc/my.cnf 在对应项上添加以下:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

在MySQL数据库中添加一个ghost数据库,并添加一个用户:

mysql -uroot -p                 #回车后输入你设置的密码进入到数据库
create database ghost;          #创建一个ghost数据库,数据库名任意
grant all privileges on ghost.* to 'username'@'%' identified by 'passwd';
#说明:“username”为数据库ghost指定用户,不建议直接使用root用户,“passwd”为“username”用户的密码。

Nginx的安装配置

准备工作

安装Nginx前添加一个repo文件,用于安装Nginx:

vim /etc/yum.repos.d/nginx.repo

编写以下内容(我就不具体说明每个字段的意思咯):

[Nginx] 
name=Nginx
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0
enabled=1
正式安装

直接yum方式安装Nginx:

yum install -y nginx     #yum安装
service nginx start      #启动Nginx服务
chkconfig nginx on       #开机自启

然后在浏览器输入你的IP地址就可以进入一个Nginx的欢迎界面,出现如下图就说明Nginx安装成功了。

Nginx的反向代理配置

下面开始配置Nginx的反向代理(备份一下,在服务器上的配置文件不建议直接删除):

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bar   
cp /etc/nginx/conf.d/default.conf.bar /etc/nginx/conf.d/ghost.conf
vim /etc/nginx/conf.d/ghost.conf   

配置成以下信息:

server {
    listen 80;
    server_name www.kalid.top;    #这里是你的域名或IP地址
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;   #端口要与ghost中配置的一样
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

然后让Nginx重启让配置生效:

service nginx restart

Nodejs的安装

特别说明一下:根据Ghost中文网对Ghost-v0.7.4 full(zh)关于Node版本选择,我第一次安装node-v0.10x时,发现在安装ghost时提示node版本过低。原因是因为我yum安装的Nginx是1.10.3版本,要求node的版本不能过低。Ghost-v0.7.4 full(zh)官方建议是使用v0.10x,同时支持v0.12.x和v4.2.x版本。所以我就选择了v0.12.18,顺利的解决了版本问题。下面是安装过程:

wget http://nodejs.org/dist/v0.12.18/node-v0.12.18.tar.gz  #wget没有的话,“ yum install -y wget ”安装后再执行上述命令
tar vxf node-v0.12.18.tar.gz -d /usr/local/src/  #解压到指定目录下
cd /usr/local/src/node-v0.12.18                  #切换到解压后的目录下
./configure                                      #简单使用默认配置
make && make install                             #编译安装node

Ghost的安装与配置

开始安装

创建ghost目录,将ghost安装到此目录下:

mkdir -p /var/www/ghost     #创建目录,自己任意命令
cd !$              #切换到ghost目录,"!$"表示上个命令的最后一个参数
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip   #下载ghost
unzip Ghost-0.7.4-zh-full.zip     #解压ghost压缩包到当前目录下
配置文件

在ghost目录中将config.example.js复制一份并命名为config.js

config.js中的config数据配置对象是一个多维度对象,production(生产模式)和development(开发者模式),其中默认使用的是development配模式,实际我们要运行时是使用production模式。

下面进行具体的配置:

cp config.example.js config.js   #复制
vim config.js

然后修改config.js中的production选项内容,使其使用mysql数据库,注释掉原来默认使用的sqlite3数据库:

production: {  
    url: 'kalid.top',        #你的域名或IP地址
    mail: {},
    database: {
        client: 'mysql'      #使用MySQL数据库
        connection: {
            host     : '127.0.0.1',      #数据库地址
            user     : 'username',       #用户名
            password : 'passwd',         #密码
            database : 'ghost',          #创建的ghost数据库
            charset  : 'utf8'
    },
    server: {
        host: '127.0.0.1',
        port: '2368'         #该端口和nginx中ghost.conf设置的端口要一致
    }
}

至此,ghost博客基本就算搭建完成了。在ghost目录下使用npm start启动ghost的开发者模式,然后在浏览器中输入你的域名或IP地址就可以访问你搭建好的博客了。但是,这仅仅是开发者模式下的博客,一旦断开ssh连接,ghost进程马上就关闭,导致我们不能正常访问博客了。

解决ghost永久在线运行的办法

搭建的博客是希望它永久在线运行的,要不然就没有任何的意义了。怎样才可以在断开ssh连接后让博客系统一直运行呢?网上也给出了很多的解决方案,我也尝试了一下,发现不是很尽人意,可能是选择的版本有直接的关系。为了解决这个问题,我也是试了多次才就我目前选用的版本得到一个解决方案-------使用pm2在后台来守护ghost服务进程,不让其下线,使其持续在production生产模式上运行,这样博客就不用担心掉线的问题了。

pm2安装过程
cd /var/www/ghost
npm install -g pm2      #安装pm2
NODE_ENV=production pm2 start index.js --name "ghost"  #指定入口文件和进程名字

这样,博客就可以持续正常运行和访问了。

pm2使用说明

pm2 [option] 进程名。例如pm2 start ghost启动守护进程ghost;pm2 restart ghost重启守护进程ghost;pm2 stop ghost关闭守护进程ghost。
每一次修改ghost的信息,都要重启一下才会生效,这个需要提醒一下。

博客攻略

ghost博客使用说明
  1. 访问博客前台:第一次登陆要求注册邮箱账户作为管理员账号,直接使用域名或IP都可以访问博客前台了。
  2. 访问博客后台:浏览器地址输入你的域名/ghost或是你的IP/ghost,使用第一次注册的管理账号登陆就可以进入博客后台了。
博客主题更换

可以到博客:http://marketplace.ghost.org/下载你喜欢的主题,有免费的也有收费的,也可以自己制作一个专属的主题哦。
我的采用的主题,本人非常感谢该主题的制作者他的博客地址

下面我简单说一下主题如何的更换:

  1. 当然了,先下载自己喜欢的主题,上传到/var/www/ghost/content/themes/目录下,并解压;
  2. 重启一下pm2守护进程ghost;
  3. 登录到ghost后台:“全局设置”--->“博客主题”选择刚上传的主题(已存在“Casper-zh-1.2.5”和“Roon-zh-1.1”两个默认主题)--->“保存”;
  4. 刷新你的博客首页,哇,你全新的博客主题出来了!好好享受一下吧!

哈哈,是不是自己动手搭建好一个个人博客很鸡冻啊!如果你在搭建过程遇到问题,可以随时联系我哦!

欢迎转载!转载请注明出处,谢谢合作!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 这是我搭建好的Ghost博客 目前网络上对搭建Ghost的教程明显比较旧了,一个流程下来并不能成功,本人整理下这篇...
    zhiyi阅读 8,737评论 18 16
  • 前几天去了一趟三亚,这次出行也感触颇多,对于一个吃货的我来说决定还是从最爱的海鲜说起吧。 去之前也做了一些的攻略,...
    9d957b67459c阅读 362评论 0 0
  • 我的帝王生涯 端白,你终于相信冥冥之中自有天意。那个老疯子孙信说不定根本不疯。真正看透一切的可能只有两个人,就...
    SparksFly1阅读 559评论 0 0
  • 《好好学习:个人知识管理精进指南》 南宁老友分舵:二级拆书家李自然昵称:自然 【F】《好好学习》作者成甲。“得到”...
    枇杷菲姐阅读 422评论 0 0
  • Финляндский вокзал到солнечное乘坐小火车约莫四十分钟。 天阴,窗外色调沉闷,喉咙哽着溢不...
    温玉轻曳阅读 254评论 0 2