在Ubuntu服务器上搭建Ghost博客

Ghost 是一套基于Node.js 构建的开源博客平台,具有易用的书写界面和优质的用户体验. Ghost博客的内容默认采用Markdown 语法书写.

准备工作

如果你只想在本地运行Ghost博客, 可以参照官方中文文档在本机运行. 本文就不再赘述.

如果你想把Ghost博客部署到服务器上, 需要先准备以下两样东西:

  • 域名
  • 服务器

推荐使用Ubuntu系统作服务器, 对新手友好, 且软件库丰富. 目前Ubuntu的长期支持版是14.04, 推荐使用这个版本.

在Ubuntu服务器上安装Ghost博客

由于Ghost是基于Node.js构建的, 所以我们需要先安装Node.js环境, 目前最新的Ghost(0.7.5)需要和4.x版本的Node.js配合使用, 暂不支持5.x版本, 所以不要贸然使用最新版的Node.js, 有可能导致与Ghost不兼容.

安装Node.js环境

如果在执行命令行的时候遇到权限不足的问题, 请在命令行前面加上sudo. 方便起见可以直接以root身份登陆服务器.

在Ubuntu终端中执行以下命令:

bash curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

命令执行结束之后, 在终端窗口中输入 node -v 和 npm -v检查 node 和 npm 是否安装成功.

安装Ghost

如果不会使用vim编辑器可以使用nano编辑器

  • 进入到要下载和安装Ghost的路径. 一般我们把Ghost的目录放在/var/www目录中, 如果没有www目录需手动创建. 现在进入到此目录中:
cd /var/www
  • 下载Ghost的最新版, 并解压下载下来的压缩包
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip

unzip -uo ghost.zip -d ghost
  • 解压完成之后cd到Ghost的目录中.
cd ghost
  • 现在我们的工作目录应该是/var/www/ghost, 在进入到下一步之前可以使用pwd命令确认你是否在这个目录下. 接下来安装Ghost, 如果你的服务器在国内, 执行这条命令有可能被墙, 请自行解决(可以使用免费的Lantern).
npm install --production
  • 修改/var/www/ghost下的config.js配置文件:
vim /var/www/ghost/config.js

把配置文件中第一个"url"后的域名改为你自己的域名, 比如我的是url: 'http://www.huanglibo.com'

注意: 这里最好不要把www省略, 否则在登录后台的时候会提示访问被拒绝, 就是因为在跳转后台的时候域名会以www开头, 而你的配置文件的域名不含www就会不匹配.

设置Ghost开机自动启动

我推荐使用初始化脚本完成这个工作, 这样可以使用系统的service命令来start/stop/restart, 比forever等软件所用的命令好记忆.

  • 用以下命令创建/etc/init.d/ghost配置文件
sudo curl https://raw.githubusercontent.com/TryGhost/Ghost-Config/master/init.d/ghost -o /etc/init.d/ghost
  • 在系统创建名为ghost的用户和用户组, 并添加ghost用户组对Ghost安装路径的访问权限
sudo useradd -r ghost -U
sudo chown -R ghost:ghost /var/www/ghost
  • 让Ghost随系统启动:
sudo update-rc.d ghost defaults
sudo update-rc.d ghost enable
  • 现在我们也可以手动控制Ghost的启动/停止/重启启动:

sudo service ghost start/stop/restart

nginx反向代理及域名配置

先确保你的域名解析到你的服务器, 本文就不再赘述.

  • 安装反向代理服务器nginx
sudo apt-get install nginx
  • 把nginx默认的配置文件全部删除
rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default
rm /etc/nginx/conf.d/default
  • 新建配置文件
vim /etc/nginx/sites-available/ghost.conf
  • 把以下配置内容粘贴进你的配置文件中
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

以上配置文件已经把反向代理写好了, 唯一需要修改的地方是: 把server_name改成你自己的顶级域名.

  • 把配置文件软链接到sites-enabled中:
sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf
  • 重启nginx服务器
sudo service nginx restart

部署完成, 现在你可以访问自己的Ghost博客了;-)

你可能感兴趣的:(在Ubuntu服务器上搭建Ghost博客)