很早就听闻Ghost的大名,界面简洁,响应速度极快,同时支持多人管理,一直以来没想着把玩,这次记起来就做了这个教程,如有纰漏,欢迎指正。
这是完成后的  http://ghost.jt4b.com

什么是Ghost?

Ghost 是一套基于 Node.js 构建的开源博客平台(Open source blogging platform),
具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 WordPress。

Linux下Node.js的安装

下载最新的nodejs,这里强烈推荐下载官方已编译好的版本,自行编译比较麻烦,而且容易遇到各种诡异的问题。

wget https://nodejs.org/dist/v5.3.0/node-v5.3.0-linux-x86.tar.gz

下载后解压

tar -xzvf node-v5.3.0-linux-x86.tar.gz

解压后将文件夹放到你认为合适的地方

关联全局

ln -s /home/jt4b/node-v5.3.0-linux-x86/bin/node /usr/local/bin/node
ln -s /home/jt4b/node-v5.3.0-linux-x86/bin/npm /usr/local/bin/npm
ln -s /home/jt4b/node-v5.3.0-linux-x86/bin/n /usr/local/bin/n

这样你就直接能在控制台输入指令了
输入

node -v
npm -v

查看版本

QQ截图20160201202940

安装成功

Ghost的安装以及遇到问题

这里下载的是Ghostchina制作的Ghost 0.7.4中文集成版

wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip
unzip -uo Ghost-0.7.4-zh-full.zip

解压后进入目录,执行

npm install --production

这时居然报错了,运行npm start看看,可以看到

报错

看来是Ghost并不支持最新版本的node,怎么办呢?还好node附带一个非常方便的管理模块n
输入

n 0.10.28

就可以轻松切换到0.10.28版了 (推荐用0.10.21)

此时再执行

npm install --production

就安装成功了。
接下来配置数据库,GHOST默认使用的是SQLite3,这里我们使用MySQL。
创建一个名为ghost的数据库,打开Ghost目录下的config.js,如果没有就拿config.example.js复制一份出来重命名为config.js
Production部分将其修改为

database: {
            client: 'mysql',
            connection: {
                host     : '127.0.0.1',
                user     : 'test',
                password : 'test',
                database : 'ghost',
                charset  : 'utf8'
            },
            debug: false
        }

开启的端口可以自行设置config.js找到如图位置修改

QQ截图20160201201746
这里我将其修改为5555端口 保存后可以输入

npm start

QQ截图20160201203952

可以看到顺利启动了,浏览器输入 http://ip:5555 已经能顺利访问。

但这还不行,因为当你结束会话时,任务就会结束。所以此时就要用到forver了

npm install forever -g

安装forver CD进Ghost目录
运行

NODE_ENV=production forever start index.js

这时Ghost就挂载到forver上了,如果想关闭可以通过

forever stop PID

指令进行。

Nginx反向代理设置

这时已经可以通过IP:5555访问我们的Ghost了,可这样并不便捷也不美观,这里我要将其绑定到我的二级域名ghost.jt4b.com上
控制台输入

vi /usr/local/nginx/conf/nginx.conf

将下列代码添加进去

server {
                listen 80;
                server_name ghost.jt4b.com;

                location ~ {
                proxy_pass http://ip:5555; //自行修改
       }
                access_log /home/wwwroot/jt4b.com/log/ghost.log combined; #access_log end
                error_log /home/wwwroot/jt4b.com/log/ghost.log crit; #error_log end
       }

这里我启用了日志,不想启用可以改成

access_log off; #access_log end
error_log /dev/null; #error_log end

保存后

nginx -s reload

重启nginx
稍等片刻后打开ghost.jt4b.com可以看到已经挂载成功了。

QQ截图20160202014406

留言

请输入验证码 * 请输入正确的验证码