博客的诞生 - Ghost博客搭建教程

本篇文章是该博客创建以来的第一篇文章, 按照"国际惯例", 来记录一下这个博客诞生的整个过程, 一来帮助一些也想要创建自己博客的童鞋们, 二来为自己的建站经历留下一篇记录.

准备工作

服务器

这里我购买的是阿里云的ECS , 系统类型选择的是Ubuntu 14.04 64位 建议购买个人用户的入门型或者基础型 , 具体的价格什么的, 我就不多说了, 阿里云里面都有.

域名

域名和服务器一样, 我建议直接在万网购买 , 方便 省事. 购买好后域名解析在域名控制台里都有.

备案

这里只说阿里云备案, 备案页面都有详细的说明, 一步一步来就行, 提交初审可能会接到阿里的电话, 主要是帮助你完善或修改不合格的信息. 初审后 需要购买阿里云的幕布(15元) 然后在幕布前拍照 并上传照片. 最后就是提交管局 等待结果咯. (我所说的是北京所在区域的大致流程, 其他地区可能有差异, 不过按照要求一步一步走, 没多大难度, 就是费点时间)

其他

可以准备一些远程连接的工具 例如: Xshell这类. 博主是直接使用的MAC终端.

基础配置

好了, 现在我们已经有了一个服务器, 并且已经解析好了域名, 接下来我们就开始对这个新的服务器进行一些基础的配置.

首先我们需要安装一些需要用到的工具包.

  1. 更新应用列表 安装npm

    sudo apt-get update
    sudo apt-get install npm
    

    安装完成后可以通过如下命令查看npm版本

    sudo npm -v
    
  2. 安装zip, unzip, wget, nano.

    sudo apt-get update
    sudo apt-get install zip
    sudo apt-get install unzip
    sudo apt-get install wget
    sudo apt-get install nano
    
  3. 安装nvm你可以到nvmGithub中获取最新版本的安装命令.

    sudo apt-get update
    sudo apt-get install build-essential libssl-dev
    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
    

    安装好nvm以后 可以执行下面命令查看当前nvm的版本.

    nvm --version
    
安装Node.js

基础配置都完成以后我们就可以安装Node.js了, 这里我们通过nvm来安装和管理Node.js. 通过下面命令 我们可以查看所有Node.js的版本列表, 运行后结果太长了, 我就不贴结果了.

nvm ls-remote
  1. Ghost支持的Node.js版本是有限的, 我们只要选择一个Ghost支持的版本即可, 我选择的是4.2.0.

    nvm install 4.2.0
    
  2. 通常情况下nvm会使用最新版本的Node.js, 你也可以设置使用指定版本.

    nvm use 4.2.0
    
  3. 安装完成后执行这个命令来查看当前Node.js的版本.

    node -v
    

扩展:

  • 查看全部已安装的Node版本

    nvm ls
    
  • 设置默认的Node版本

    nvm alias default 4.2.0
    
  • 设置使用默认版本

    nvm use default
    
安装Ghost

以上全部做好后, 我们就可以开始安装Ghost了. (请确保上面的操作都已完成, 并且安装的版本都符合要求)

  1. 首先我们创建一个存放Ghost的文件夹, 不乱存到根目录是一个好的习惯.

    sudo mkdir -p /var/www/
    
  2. 进入到我们刚刚创建的目录.

    cd /var/www/
    
  3. 使用wget下载Ghost的安装包.

    wget https://ghost.org/zip/ghost-latest.zip
    
  4. 使用unzip解压Ghost的压缩包

    unzip -d ghost ghost-latest.zip
    
  5. 进入到解压好的Ghost文件夹中

    cd /var/www/ghost
    
  6. 安装Ghost的生产模块

    npm install --production
    

到这里Ghost已经安装完成.

设置Ghost

这一步主要是设置Ghost的一些配置信息, 设置博客的域名, 设置博客的数据库信息, 图片存储等等.

  1. 复制创建config.js文件.

    cp config.example.js config.js
    
  2. 使用nano打开并编辑config.js文件

    nano config.js
    

/var/www/ghost/config.js内容大致如下:

var path = require('path'),  
    config;

config = {  
    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        //这里写你的博客域名
        url: 'http://my-ghost-blog.com', 
        mail: {
            // Your mail settings
        },
        //默认使用的是Sqlite3数据库, 如果要改为Mysql也是在这里设置.
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },

        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',
            // Port to be passed to node's `net.Server#listen()`, for iisnode s$
            port: '2368'
        }
    },

(...)

编辑完成后 按CTRL + X键, 再输入Y 保存关闭编辑.

启动Ghost

现在就可以运行一下Ghost看一看了

npm start --production

运行后的结果大致是这样的:

> ghost@0.7.4 start /var/www/ghost
> node index

Migrations: Database initialisation required for version 003
Migrations: Creating tables...
Migrations: Creating table: posts

[...]

如果是这样的, 就说明运行成功了, 这时候就可以通过浏览器访问了, 你可以直接访问刚刚设置的域名+端口号 http://XXXXX.com:2368.

如果报错了, 你应该会看到详细的错误说明, 检查每一步是否都操作成功了, 并且认真查看config.js文件 里面少一个,号都不可以的, 一定要严格按照它的格式去写.

现在回到终端, 按CTRL + C键 结束掉正在运行的Ghost.

配置Nginx

我们通过nginx让Ghost博客可以使用80端口进行访问

  1. 安装nginx.

    apt-get install nginx
    
  2. 移除默认文件.

    cd /etc/nginx/
    rm sites-enabled/default
    
  3. 创建新的配置文件并编辑.

    touch /etc/nginx/sites-available/ghost
    nano /etc/nginx/sites-available/ghost
    

    为你的Ghost配置80端口, 将your_domain.tld替换成你的域名.

    server {
        listen 80;
        server_name your_domain.tld;
        location / {
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   Host      $http_host;
            proxy_pass         http://127.0.0.1:2368;
        }
    }
    

    编辑完成后 按CTRL + X键, 再输入Y 保存关闭编辑.

  4. 启用配置.

    ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost
    
  5. 重新启动nginx.

    service nginx restart
    
使用Forever

现在我们的Ghost还无法在后台运行, 这里我们使用forever让Ghost保持在后台运行, forever可以在Ghost运行崩溃时自动启动新的实例运行.

  1. 安装forever.

    npm install -g forever
    
  2. 进入Ghost目录

    cd /var/www/ghost
    
  3. 运行index.js

    forever start index.js
    

    也可以设置生产模式运行

    NODE_ENV=production forever start index.js
    

    运行结果如下 说明运行成功:

    warn:    --minUptime not set. Defaulting to: 1000ms
    warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
    info:    Forever processing file: index.js
    

扩展:

  • 查看运行的列表:

    forever list
    
  • 结束运行某一脚本:

    forever stop 脚本名
    
  • 结束运行全部脚本:

    forever stopall
    
  • 重新运行全部脚本:

    forever restartall
    
  • 更多使用方法可以通过以下命令获取:

    forever -h
    

结语

到这里, 一个Ghost博客就已经搭建完成了, 接下来就可以开始你的Ghost之路了~ 未来还有各式各样的主题等着你去折腾, 搭建方法就记录到这里, 关于如何改用Mysql数据库, 如何使用云存储处理图片资源..等 会在下一篇讲解.


参考文章: How To Create a Blog with Ghost and Nginx on Ubuntu 14.04