Ghost博客搭建

  之前一直在CSDN或者51CTO上面写技术文章,但是最终还是无法忍受这些博客平台丑陋的界面,最主要的是还无法定制功能。终于下定决心搞个独立博客,比较了下老版的wordpress和后起之秀ghost,被ghost简洁优雅的界面和管理后台吸引,毫不犹豫选择了ghost.

  一直比较喜欢写文字,记录自己经历过得人和事,这样许多年后再翻开看看,也是一份回忆。学习技术也是如此,一路磕磕碰碰,从小菜鸟到老手, 为了一个问题折磨的睡不着觉,挑灯夜战。解决了问题后的欢呼雀跃。或沮丧,或开心。都是一份收获。在浩如烟海的互联网的一个小角落,一步步记录下自己在技术这条路上走过的印记。


  在安装ghost遇到不少坑,这篇博文主要是把自己踩过的坑总结下,避免大家再浪费时间踩坑。经过一天多的安装失败经验发现按照网上的教程都会卡在npm install --production这个命令这里,一直报错,试了各种教程都无法编译成功。然后在ghost中文官网看到下面的这段话才明白被墙了

   Ghost 所依赖的 sqlite 包需要从国外服务器上(亚马逊的云存储服务)下载原生插件,不过你知道的,国外好多服务器都被墙了,因此在国内经常遇到通过 npm install --production 安装依赖包时出错,即使你替换成国内的 npm 镜像也没用,因为 sqlite 的原生插件没有通过 npm 分发。

下面的教程是我亲自试验可以成功的

安装环境

  1. 阿里云VPS,系统:ubuntu14.0
  2. ghost 中文包0.7.4(注意不要从英文官网下),下面我会给出链接

  登陆到服务器,最好把apt的源更换到国内,不然使用apt更新的时候会很慢。阿里云的主机已经帮你把源更换到阿里的网址,不用更换。 使用命令vi /etc/apt/sources.list更换apt源。

下面是一些国内的apt源。

网易源

deb http://mirrors.163.com/ubuntu/ vivid main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ vivid-backports main restricted universe multiverse

阿里源

deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse

下载ghost部署需要的环境nodejs和npm和一些工具
apt-get Install nodejs-legacy  
apt-get Install npm  
apt-get install wget  
apt-get install unzip  
查看node和npm的版本号,官方推荐node版本是0.10.x

下载ghost0.7.4中文版,并解压
mkdir -p /var/www/ghost  
cd /var/www/ghost  
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip  
unzip Ghost-0.7.4-zh-full.zip  
修改ghost的配置文件

如果不修改,ghost默认运行在127.0.0.1:2368上面,这样外部就无法访问。 如果没有config.js文件,就如下操作:

cp config.example.js config.js  
nano config.js  

修改如下

接下来使用命令npm start启动ghost。 这个时候使用浏览器输入你的主机ip地址就可以访问ghost博客了。

但是事情还没有完哦。

注意:

  此时ghost运行在development环境下,这也是默认环境,是用来测试用的,等到真正上线你的ghost,需要运行在prodution环境。

让ghost一直运行

  这个时候ghost虽然可以正常运行,但是如果你断开了终端,那么ghost也会停止。我们需要ghost在后台一直运行,需要做如下修改。

sudo apt-get install nginx  
sudo rm sites-enabled/default  
sudo touch /etc/nginx/sites-available/ghost  
sudo nano /etc/nginx/sites-available/ghost  
修改nginx配置文件
server {  
    listen 80;
    server_name www.baidu.com;(修该为你的域名)
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}
启动nginx
sudo ln -s /etc/nginx/sites-available/ghost  /etc/nginx/sites-enabled/ghost  
sudo service nginx restart  
使用forever保持ghost在后台持续运行
npm install -g forever  
NODE_ENV=production forever start index.js  
//停止forever
forever stop index.js  

使用命令forever list查看forever 是否挂载在index.js上,如下所示就是正常的了

这个时候你就可以使用主机ip地址访问你的博客了,而且在ghost会在后台一直运行

下一篇文章我会介绍如何给ghost添加评论功能和实现语法高亮。

参考文章

  1. https://www.digitalocean.com/community/tutorials/how-to-create-a-blog-with-ghost-and-nginx-on-ubuntu-14-04
  2. http://www.ghostchina.com/ghost-0-7-4-released/
comments powered by Disqus