Ghost无疑是当下最火爆的纯BLOG程序,其基于 Node.js,由前 WordPress UI 主管 John O’Nolan 和 WordPress 开发人员 Hannah Wolfe 创立。自去看上线以来已经受到了很多人的追捧,Ghost 主题/模版越来越多,一些优秀的 WordPress 主题商都开始提供 Ghost 主题了。目前最新版本为0.4.1 。

一、node.js的安装

由于Ghost是基于node.js开发的,所以必须要安装node.js环境,根据不同的系统方法安装方式也略有不同。这里列下linux下三个最常用的分支的安装方法:

1、ubuntu及其衍生类

1sudo apt-get update
2sudo apt-get install -y python-software-properties python g++ make
3sudo add-apt-repository ppa:chris-lea/node.js
4sudo apt-get update
5sudo apt-get install nodejs

2、redhat/centos等

1//查看是否有EPEL源
2yum repolist
3//如果没有按下面的方法安装,并安装node.js
4rpm -Uvh http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
5yum install nodejs npm --enablerepo=epel

3、Debian及其分支

1sudo apt-get install python g++ make checkinstall
2src=$(mktemp -d) && cd $src
3wget -N http://nodejs.org/dist/node-latest.tar.gz
4tar xzvf node-latest.tar.gz && cd node-v*
5./configure
6fakeroot checkinstall -y --install=no --pkgversion $(echo $(pwd) | sed -n -re's/.+node-v(.+)$/1/p') make -j$(($(nproc)+1)) install
7sudo dpkg -i node_*

我自己笔记本上的crunchbang linux属于该类,其是通过checkinstall先将node.js源码包生成deb文件后,执行dpkg -i node-xxx.deb再安装。 如果是其版本的系统请参考github上的方法

二、Ghost的安装

Ghost的官方下载页面是:

1# wget https://en.ghost.org/archives/ghost-0.4.1.zip
2# unzip ghost-0.4.1.zip -d ghost
3# cd ghost
4# npm install --production

copy一份config.example.js为config.js,将其中的127.0.0.1改为0.0.0.0(如果使用nginx或apache反向代理,该修改步骤可省略)使用npm启动ghost程序

1[root@test174 ghost]# npm  start
2> [email protected] start /tmp/ghost
3> node index
4Ghost is running in development...
5Listening on 0.0.0.0:2368
6Url configured as: http://my-ghost-blog.com
7Ctrl+C to shut down

完成后,其前后台界面如下:

ghostfront

ghostadmin

三、nginx反向代理

上面也提到nginx反向代理,虽然node.js像tomcat一样,可以不依赖前端web运行,不过往往我们不会这样做。nginx反向代理的配置如下:

 1server {
 2    listen 0.0.0.0:80;
 3    server_name ghost.com;
 4    access_log /var/log/nginx/ghost.com.log;
 5    location / {
 6        proxy_set_header X-Real-IP $remote_addr;
 7        proxy_set_header HOST $http_host;
 8        proxy_set_header X-NginX-Proxy true;
 9        proxy_pass http://127.0.0.1:2368;
10        proxy_redirect off;
11    }
12}

可能遇到的报错问题:

 1> [email protected] install /var/www/ghost/node_modules/sqlite3
 2> node build.js
 3[sqlite3]: Checking for http://node-sqlite3.s3.amazonaws.com/Release/node_sqlite3-v2.1.a-node-v11-linux-x64.tar.gz
 4[sqlite3]: Error: EACCES, open '/root/tmp/node-sqlite3-Release/node_sqlite3-v2.1.a-node-v11-linux-x64.tar.gz'
 5npm ERR! [email protected] install: `node build.js`
 6npm ERR! Exit status 1
 7npm ERR!
 8npm ERR! Failed at the [email protected] install script.
 9npm ERR! This is most likely a problem with the sqlite3 package,
10npm ERR! not with npm itself.
11npm ERR! Tell the author that this fails on your system:
12npm ERR!     node build.js
13npm ERR! You can get their info via:
14npm ERR!     npm owner ls sqlite3
15npm ERR! There is likely additional logging output above.
16npm ERR! System Linux 3.2.0-4-amd64
17npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--production"
18npm ERR! cwd /var/www/ghost
19npm ERR! node -v v0.10.26
20npm ERR! npm -v 1.4.3
21npm ERR! code ELIFECYCLE
22npm ERR!
23npm ERR! Additional logging details can be found in:
24npm ERR!     /var/www/ghost/npm-debug.log
25npm ERR! not ok code 0

上面的报错信息是我在crunchbang linux(debian的分支)时遇到的错误,在centos测试环境上未遇到该问题 。解决方法如下:

先确认安装有sqlite-devel包,确认有安装后,再执行如下的步骤:

1npm install -g node-gyp
2npm install sqlite3 --build-from-source
3npm install --production

参考页面

codyhatch

ghost论坛