如何在Fedora 25上部署Ghost

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

自2013年发布以来,这是一个开源博客平台,在开发人员和普通用户中越来越受欢迎。它专注于内容和博客。 Ghost最吸引人的地方是其简单,干净且响应迅速的设计。您可以通过手机撰写博客文章。 Ghost的内容是使用Markdown语言编写的。幽灵非常适合个人或小组作家。

在本指南中,我们将在以下位置建立并部署安全的Ghost博客: Fedora 25 VPS 使用 让我们加密CertbotNode.jsNginx的下午2

要求

Fedora 25服务器实例,最小为 1GB内存
您可能必须使用以下命令打开端口2368 semanage port -a -t http_port_t -p tcp 2368
让我们加密

在开始此步骤之前,请确保已设置 域名解析 您的域的记录。

我们将使用Let’s Encrypt CA和EFF的Certbot客户端获取Ghost博客的TLS证书。
别忘了替换的所有实例 example.com 与您的域名。

更新系统:

dnf check-update || dnf upgrade -y

安装所需的工具:

dnf install @development-tools -y

安装Certbot(又叫我们加密客户端):

dnf install certbot -y

检查Certbot版本:

certbot --version
# certbot 0.12.0

使用独立的”模式获取证书:

certbot certonly --standalone --domains example.com,www.example.com --email [email protected] --agree-tos --rsa-key-size 2048

完成上述步骤后,您的证书和私钥将位于 /etc/letsencrypt/live/example.com 目录。

安装NodeJS

Ghost当前支持Node版本 0.12.x4.2+6.9+ 只要。

我们将为Ghost安装受支持的版本,即 v6 Boron LTS 在撰写本文时。

下载并安装最新版本 LTS 版本的Node.js:

dnf install nodejs -y

检查节点和NPM版本:

node -v && npm -v
# v6.10.2
# 3.10.10

安装Nginx

下载并安装Nginx:

dnf install nginx -y

检查Nginx版本:

nginx -v
# nginx version: nginx/1.10.2

启动并启用Nginx服务:

systemctl start nginx.service && systemctl enable nginx.service

将Nginx配置为反向代理:

vi /etc/nginx/conf.d/ghost.conf

将以下内容粘贴到 /etc/nginx/conf.d/ghost.conf

server {

  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com www.example.com;

  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://127.0.0.1:2368;
  }

}

检查Nginx语法:

nginx -t

重新加载Nginx配置:

systemctl reload nginx.service

安装Ghost

如果要在同一主机上托管多个Ghost博客 VPS,每个Ghost实例必须在单独的端口上运行。

使 webroot 目录:

mkdir -p /var/www/

创建一个新的虚幻用户:

useradd -c "Ghost Application" ghost 

下载Ghost:

curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.8/Ghost-0.11.8.zip -o ghost.zip

解压缩Ghost:

unzip -uo ghost.zip -d /var/www/ghost
rm -f ghost.zip

导航到webroot:

cd /var/www/ghost

更改webroot目录的所有权:

chown -R ghost:ghost .

切换到新的幽灵用户:

su - ghost

导航到webroot:

cd /var/www/ghost

安装Ghost:

npm install --production

通过更改配置Ghost urlmail 的财产 production 里面的物体 config.js 文件:

cp config.example.js config.js
vi config.js


var path = require('path'),
       config;

config = {
  // ### Production
  // When running Ghost in the wild, use the production environment.
  // Configure your URL and mail settings here
  production: {
    url: 'https://example.com',
    mail: {
      options: {
         service: '',
            auth: {
              user: '',
              pass: ''
            }
          }
    },
        . . .
        . . .
    },
}
. . .
. . .        

注意:您应该配置 mail 也。咨询官方 幽灵文档 关于如何做到这一点。

启动Ghost:

npm start --production

Ghost现在将运行。博客前端和管理界面均通过 HTTPSHTTP / 2 也正在工作。您可以打开浏览器并访问以下网站: https://example.com。别忘了更换 example.com 与您的域名。

通过按关闭Ghost进程 CTRL + C 并从幽灵用户退出回到根用户:

exit

安装PM2

如果您关闭与您的终端会话 VPS,您的博客也将关闭。这不好。为避免这种情况,我们将使用 下午2 流程经理。这将使我们的博客保持24/7全天候运行。

安装最新的稳定版PM2流程管理器:

npm install -g [email protected]

检查PM2版本:

pm2 -v
# 2.4.6

再次切换到幽灵用户:

su - ghost

NODE_ENV 生产环境变量:

echo "export NODE_ENV=production" >> ~/.bashrc && source ~/.bashrc

使用PM2启动(守护)Ghost应用程序:

pm2 start /var/www/ghost/index.js --name "Ghost Blog"

导航 https://example.com/ghost/ 并创建Ghost管理员用户。尽快执行此操作。

结论

而已。我们现在有一个功能齐全的Ghost博客。如果要更改默认的Ghost主题,称为 卡斯珀 要定制,您可以将主题下载并解压缩到 /var/www/ghost/content/themes 文件夹,然后通过位于以下位置的Ghost管理界面将其选中 https://example.com/ghost

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com