前言:为什么要在宝塔面板下装Ghost博客?源于我对宝塔的需求,方便于测试代码的时候能够快速的建立环境。至于宝塔的安全性问题就不必深究了,凡事都有双刃剑!

环境:Debian9 x64,宝塔面板(Nginx1.16.1 + Mysql5.6)

Ghost环境需求

Ubuntu 16.04或Ubuntu 18.04
NGINX(SSL最低为1.9.5)
一个支持的版本的Node.js的
MySQL 5.5、5.6或5.7(非 > = 8.0)
至少有1GB内存的服务器
并非Ubuntu才可以安装,Debian,Centos都可以安装!

首先安装Node.js

  1. 首先更新本地包,并安装curl,您将使用它来访问PPA:
sudo apt update
sudo apt install curl
  1. 接下来安装PPA以访问其内容,替换10.x数字使用你需要的版本:
cd ~
curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
  1. 在sudo环境下运行以下脚本:
sudo bash nodesource_setup.sh
  1. PPA已被添加到软件配置中,运行安装Node.js包:
sudo apt install nodejs
  1. 检查一下是否安装成功:输出版本则安装成功
nodejs -v
v10.17.0

在宝塔面板安装部署Ghost网站

  1. 宝塔面板中网站-添加站点-输入您的域名-数据库选择创建

  2. 下载Ghost源码上传到1步骤添加的网站根目录中并解压

Ghost-github官方最新下载链接

  1. 手动部署Ghost相关配置
    进入到core/server/config 编辑defaults.json
"url": "https://xxxxxx.xx"  //将url修改成的你的域名

进入到core/server/config/env 编辑config.production.json

"database": {
        "client": "mysql",
        "connection": {
            "host": "127.0.0.1",
            "user": "xxxxx",   //将user,password,database值替换成你在宝塔添加的数据库信息
            "password" : "xxxxx",
            "database" : "xxxxx"
        }
    }
  1. 生成Ghost环境依赖
    进入到Debian终端
cd ../../
cd www/wwwroot/xxxxx   //xxxxx对应你的网站域名
npm install --production
  1. 检查宝塔环境依赖
    宝塔面板-软件商店-nginx-设置-配置修改
将include luawaf.conf前面的#去除  //此配置是nginx的防火墙

然后重启nginx.
还有重要的一步如果你的网站要开启https,在宝塔面板-安全-放行443端口,2368端口
6. 修改网站的配置文件
在宝塔中找到你的网站-设置-配置文件,修改成如下
如果你的网站是http开头配置如下:

server
{
    listen 80;
    server_name xxxxx.xx; //修改成你的域名
    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_pass http://127.0.0.1:2368;
    }
}

如果你的网站是https开头配置如下:

server
{
    listen 80;
    server_name xxxxx.xx;  //修改成你的域名
    return 301 https://xxxxx.xx$request_uri;//修改成你的域名
}
server {
     listen 443 ssl; 
     server_name xxxxx.xx;   //修改成你的域名
     ssl_certificate /www/xxx/xxx.crt;  //修改成你的证书路径
     ssl_certificate_key /www/xxx/xxx.key;   //修改成你的证书路径
     ssl_session_timeout 5m;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_pass http://127.0.0.1:2368;
    }
 }
  1. 用npm启动你的Ghost网站:请在网站根目录下命令
npm start --production

到这步已经能够成功启动你的网站了。
8. 最后安装forever守护Ghost进程
以下命令都请在网站根目录下运行

Crtl+C //打断正在运行的Ghost网站
npm install forever -g //forever的安装命令  
NODE_ENV=production forever start index.js 

好了,Ghost就此安装完成
9. forever相关命令:请在网站根目录下命令

NODE_ENV=production forever start index.js //启动Ghost  
NODE_ENV=production forever stop index.js //停止Ghost  
NODE_ENV=production forever restart index.js //重启Ghost