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

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

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

安装过程没有出现任何问题,安装成功!(测试平台:腾讯云CentOS7系统)

安装步骤:

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

安装 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 ,并设置开机自启:
/bin/systemctl start nginx.service
systemctl enable nginx.service

可以通过 nginx -V 查看 Nginx 版本,将安装 Nginx 1.10 版本。

安装 Node.js

从网络仓库,以 RPM 方式安装 Node.js,能快速安装并节省很多时间,此时将安装 node.js v6.x版本,此版本是 Ghost 官方推荐的,并会安装 npm 3.x。

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

首先添加仓库:
curl -sL https://rpm.nodesource.com/setup_6.x | bash -

然后直接下载并安装:
yum -y install nodejs

可以用 node -vnpm -v 命令查 Node.js 和 npm 的版本。

颜修门博客www.flisoo.com

安装 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.example.js 创建一个 config.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 /bin/systemctl restart nginx.service

安装 pm2 进程守护

Ghost 使用 npm start --production 命令启动。但这命令有一个缺点,当你关闭终端窗口或者 SSH 断开连接时,Ghost 就停止了。为了防止 Ghost 停止工作,我们需要安装“pm2”(也可以使用 Forever 或 Upstart)

我把 ghost 安装在/data/www/flisoo/目录里了,所以想在/data/www/目录下安装 pm2,这样通过入口设置,控制flisoo目录里的 Ghost 启动文件。

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

安装PM2:
npm install pm2 -g

我们要设置环境变量为 “production” 生产模式!把“flisoo/index.js”作为程序启动的入口。最后给这个 pm2 的进程命名为"flisoo"于是,执行下面的命令:
NODE_ENV=production pm2 start flisoo/index.js --name "flisoo"

让PM2在开机后自动运行我们的网站:
pm2 startup centos
pm2 save

一些以后可能会用到的命令:

  • pm2 kill (清除所有ghost进程)
  • pm2 start flisoo (启动ghost进程)
  • pm2 stop flisoo (停止ghost进程)
  • pm2 restart flisoo (重启ghost进程)
  • pm2 startup centos (让pm2能够在centos系统上自动启动)

注意:今后想要使用 pm2 命令,请进入cd /data/www目录再执行命令。
服务器重启后 网站报:Nginx 502 错误,请刷新多几下浏览器即可。

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