在CentOS 7.2上安装Ghost

最近准备在一个项目中使用一个轻量级的博客做项目的公开文档平台,项目文档本身是用markdown格式写的,因此使用Ghost就是顺理成章的了。花了一个小时在项目服务器(阿里云ECS,操作系统CentOS 7.2 64位)上完成了初始安装,步骤如下:

  1. 登录到服务器,更新软件,确认wget,unzip,node,npm这些软件都有
    yum update -y
  2. 下载最新版Ghost
    wget https://ghost.org/zip/ghost-latest.zip
  3. 创建准备安装Ghost的目录,zip压缩包解压缩到这里
    mkdir /yourGhostPath/ghost
    unzip -d /yourGhostPath/ghost ghost-latest.zip
  4. 安装Ghost
    cd /yourGhostPath/ghost
    npm install --production
  5. 配置Ghost
    cp config.example.js config.js
    vi config.js
    将配置文件中production: {下面一行
    url: 'http://your_domain_or_ip_address',
    单引号中的网址替换为你打算设置的网址,保存config.js文件退出
  6. 配置Nginx
    cd /yourNginxPath/nginx/
    mkdir sites-available
    mkdir sites-enabled
    vi /yourNginxPath/nginx/sites-available/ghost
    写入以下内容
    server {
    listen 80;
    server_name your_domain_or_ip;
    location / {
    ​    proxy_set_header HOST $host;
    ​    proxy_set_header X-Forwarded-Proto $scheme;
    ​    proxy_set_header X-Real-IP $remote_addr;
    ​    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    ​    proxy_pass http://127.0.0.1:2368;
    ​    }
    }
    注意,以上代码第三行的your_domain_or_ip请替换为你准备使用的域名或公网IP地址
    ln -s /yourNginxPath/nginx/sites-available/ghost /yourNginxPath/nginx/sites-enabled/ghost
    vi /yourNginxPath/nginx/conf/nginx.conf
    在http代码块内,加入
    include /yourNginxPath/nginx/sites-enabled/*;
    后保存退出
    重启nginx
  7. 创建一个新用户来执行ghost
    1. 创建新用户:
      adduser ghost
    2. 设置密码:
      passwd ghost
    3. 加入sudoer:
      usermod -aG wheel ghost
    4. 更改ghost目录用户:
      chown -R ghost:ghost /yourGhostPath/ghost/
  8. 使用pm2启动ghost服务
    1. 使用ghost用户
      su - ghost
    2. 安装pm2
      cd /yourGhostPath/ghost
      sudo npm install -g pm2
      echo "export NODE_ENV=production" >> /yourGhostPath/.profile
      source /yourGhostPath/.profile
      pm2 kil
      lpm2 start index.js --name ghost
      pm2 dump
      sudo pm2 startup centos
    3. 常用的pm2命令
      查看状态:pm2 status
      停止服务:pm2 stop ghost
      查看日志:pm2 logs