CentOS 6 系统安装Ghost博客平台详细教程 | 适用于0.1-0.11版本

本教程适用于 CentOS 6 系统搭建 Ghost 博客平台,后台是 Node.js,数据库是 Sqlite,适合个人博客站点。注意:安装的 Ghost 版本是0.11.12 ,也就是 Ghost 改版前的最后一个更新版本。

现在 Ghost 的最新版本为 1.0 版本,由于最新版本 1.0 进行了重构,所以本教程不适用于安装最新版本的 Ghost ,如果想安装最新版本,可以在本网站找到安装最新版本的教程。

安装过程出现丢丢问题,最后安装成功!(测试平台:腾讯云CentOS6系统)

  • Node .js 安装失败,通过 RPM 安装时 nmp 版本太低,造成无法执行 Ghost 安装。通过源代码安装时,系统无法编译,囧。从网络仓库安装 Node.js 时,是 v0.10 版本,Ghost官方不支持, npm 也没有附带安装。最终选择直接下载编译包安装,简单粗暴。
  • 安装成功后重启,发现网站不能打开 Nginx 502 Bad Gateway 错误,原因是:PM2进程守护无法随服务器重启而自动启动,并且 pm2 start flisoo 命令也失效了,所以改用 Forever。
  • 以下是失败多次总结出来的全新教程,跟 CentOS 7 系列完全不同

安装步骤:

  • 安装 Nginx
  • 安装 Node.js
  • 安装 Ghost
  • 配置 Nginx 反向代理
  • 安装 Forever 进程守护程序

开始

查看当前 CentOS 系统版本:
cat /etc/redhat-release

安装开发工具包:
yum groupinstall 'Development Tools'

安装 Nginx

安装 Nginx 作为HTTP服务器,编辑 Nginx 的仓储地址:
vim /etc/yum.repos.d/nginx.repo

接着按一下键盘上的字母 “ i ”,把下面的内容粘贴进去。

[nginx] 
name=nginx repo  
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/  
gpgcheck=0  
enabled=1  

粘贴完成后,按一下 Esc 键,然后输入 :wq! ,按回车退出。
(注意“:”和“!”是英文输入法下的符号)

现在,用 yum 自动下载并安装 Nginx:
sudo yum install nginx -y

启动 Nginx ,并设置开机启动:
sudo service nginx start
sudo chkconfig nginx on

安装node.js

看了N+教程,总结最简单的一种安装方法,CentOS 6系统安装 Node.js 真心麻烦,新手会踩很多坑才会安装成功自己想要的版本,下面我将安装 Ghost 官方推荐支持的 Node.js V6 版本。

下载软件包,并解压:
wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.gz

解压:
tar xzf node-v6.9.5-linux-x64.tar.gz
cd node-v6.9.5-linux-x64

我们想在 /usr/local 目录中安装 Node.js,所以使用以下命令将文件复制到 /usr/local 目录即可:
for dir in bin include lib share; do cp -par ${dir}/* /usr/local/${dir}/; done

查看版本 node -vnpm -v,发现成功安装 node.js 6.x 版本和 npm 3.x 版本。

注意:下载速度很慢很慢,建议自己用电脑下载好文件,然后通过 FTP 传到 root 目录,再用 SSH 命令tar xzvf node-v6.9.5-linux-x64.tar.gz解压,下载地址:https://nodejs.org/dist/v6.9.5/ 记得下载 node-v6.9.5-linux-x64.tar.gz 文件。

安装 Ghost

创建一个文件夹,用来放置网站文件:
sudo mkdir -p /data/www/
cd /data/www/

从官方网站下载最新版本的 Ghost:
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip

解压到 flisoo 文件夹(命令的意思是:创建 flisoo 文件夹,并把 Ghost 解压进去):
unzip -d flisoo ghost.zip
cd /data/www/flisoo

配置 config.js文件,尚未运行 Ghost,不会有 config.js 文件,但可以通过复制 config.example.js 创建一个:
sudo cp config.example.js config.js
sudo vim config.js

先按一下字母 “i”,然后修改里面的http:/my-ghost-blog.com为你想要绑定的域名,编辑完成后,按一下 Esc键,再输入 :wq! 回车退出。

颜修门博客www.flisoo.com

接下来就可以执行安装了:
npm install --production

颜修门博客www.flisoo.com

配置 Nginx 反向代理

新建一个 Nginx 代理文件,并将代理指向 Ghost 端口:
sudo vim /etc/nginx/conf.d/ghost.conf

先按一下字母 “i”,再将下面内容粘贴进去。注意将 flisoo.com www.flisoo.com 改成你上面想要绑定的域名(通过这样的域名格式,你将可以通过两种形式访问网站)。编辑完成后,按一下 Esc键,输入 :wq!,回车退出。

server {  
    listen 80;
    server_name flisoo.com www.flisoo.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 service nginx restart

安装 Forever 进程守护

Ghost 使用 npm start --production 命令启动。但这命令有一个缺点,当你关闭终端窗口或者 SSH 断开连接时,Ghost 就停止了。为了防止 Ghost 停止工作,我们需要使用进程守护程序“Forever”

你可以使用 forever 以后台任务运行 Ghost 。forever 将会按照 Ghost 的配置,当进程 crash 后重启 Ghost。

进入 flisoo 目录:
cd /data/www/flisoo

安装 forever:
npm install forever -g

让 Ghost 永远在线,输入:
NODE_ENV=production forever start index.js

可以使用的命令:

  • 停止 Ghost:forever stop index.js
  • 检查 Ghost 是否正在运行:forever list

至此,Forever 已经可以守护 Ghost 博客永远在线了。

注意:今后重启服务器后,都要执行以下命令去启动 Ghost
cd /data/www/flisoo
NODE_ENV=production forever start index.js


之前安装 pm2 进程守护的时候,可以随 CentOS 7服务器重启而自动启动,但是一到 CentOS 6系统,pm2 自动启动失效了,造成我还以为是 Node.js 的问题,查了很多教程不断去重装 Node.js,最后发现是 CentOS 6系统本身的问题,让 pm2 无法自动启动,啊啊啊啊啊啊啊,反正都要每次去启动,索性换成 Forever 了,Ghost 官方推荐安装的。


之前是使用 wget 命令去下载 Ghost 软件的,但是发现速度超级慢,然后就会卡住断线,所以换成 curl -L 去下载了,虽然速度一样很慢,但是不会卡住啊