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及其衍生类
sudo apt-get update sudo apt-get install -y python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
2、redhat/centos等
//查看是否有EPEL源 yum repolist //如果没有按下面的方法安装,并安装node.js rpm -Uvh http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum install nodejs npm --enablerepo=epel
3、Debian及其分支
sudo apt-get install python g++ make checkinstall src=$(mktemp -d) && cd $src wget -N http://nodejs.org/dist/node-latest.tar.gz tar xzvf node-latest.tar.gz && cd node-v* ./configure fakeroot checkinstall -y --install=no --pkgversion $(echo $(pwd) | sed -n -re's/.+node-v(.+)$/1/p') make -j$(($(nproc)+1)) install sudo dpkg -i node_*
我自己笔记本上的crunchbang linux属于该类,其是通过checkinstall先将node.js源码包生成deb文件后,执行dpkg -i node-xxx.deb再安装。
如果是其版本的系统请参考github上的方法。
二、Ghost的安装
Ghost的官方下载页面是:
# wget https://en.ghost.org/archives/ghost-0.4.1.zip # unzip ghost-0.4.1.zip -d ghost # cd ghost # npm install --production
copy一份config.example.js为config.js,将其中的127.0.0.1改为0.0.0.0(如果使用nginx或apache反向代理,该修改步骤可省略)使用npm启动ghost程序
[root@test174 ghost]# npm start > ghost@0.4.1 start /tmp/ghost > node index Ghost is running in development... Listening on 0.0.0.0:2368 Url configured as: http://my-ghost-blog.com Ctrl+C to shut down
完成后,其前后台界面如下:
三、nginx反向代理
上面也提到nginx反向代理,虽然node.js像tomcat一样,可以不依赖前端web运行,不过往往我们不会这样做。nginx反向代理的配置如下:
server { listen 0.0.0.0:80; server_name ghost.com; access_log /var/log/nginx/ghost.com.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:2368; proxy_redirect off; } }
可能遇到的报错问题:
> sqlite3@2.1.19 install /var/www/ghost/node_modules/sqlite3 > node build.js [sqlite3]: Checking for http://node-sqlite3.s3.amazonaws.com/Release/node_sqlite3-v2.1.a-node-v11-linux-x64.tar.gz [sqlite3]: Error: EACCES, open '/root/tmp/node-sqlite3-Release/node_sqlite3-v2.1.a-node-v11-linux-x64.tar.gz' npm ERR! sqlite3@2.1.19 install: `node build.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the sqlite3@2.1.19 install script. npm ERR! This is most likely a problem with the sqlite3 package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node build.js npm ERR! You can get their info via: npm ERR! npm owner ls sqlite3 npm ERR! There is likely additional logging output above. npm ERR! System Linux 3.2.0-4-amd64 npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--production" npm ERR! cwd /var/www/ghost npm ERR! node -v v0.10.26 npm ERR! npm -v 1.4.3 npm ERR! code ELIFECYCLE npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /var/www/ghost/npm-debug.log npm ERR! not ok code 0
上面的报错信息是我在crunchbang linux(debian的分支)时遇到的错误,在centos测试环境上未遇到该问题 。解决方法如下:
先确认安装有sqlite-devel
包,确认有安装后,再执行如下的步骤:
npm install -g node-gyp npm install sqlite3 --build-from-source npm install --production
参考页面