Ghost 的高可用安装 安装篇

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 前面详细的讲述了,在 Node.js 4.x 环境下安装 Ghost 博客平台的准备工作,包括配置、系统的选择,组建的选择等等,如果没有看过的同学,一定要去看一下! 门:《Ghost 的高可用安装 准备篇》

前面详细的讲述了,在 Node.js 4.x 环境下安装 Ghost 博客平台的准备工作,包括配置、系统的选择,组建的选择等等,如果没有看过的同学,一定要去看一下! 门:《Ghost 的高可用安装 准备篇》

下载、准备

这里我们推荐安装的是由王赛翻译的 Ghost 中文版(非官方,因为官方也没有出中文版。)因为,它不仅被翻译了,而且其去除了像谷歌字体这样的会拖慢速度的内容;集成 node_modules 免去了大陆主机无法运行的问题。

下载 http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip 到相应目录,例如我设置的是 /data/wwwroot/mf8

mkdir -p /data/wwwroot/mf8/ //如果没有就要创建
cd /data/wwwroot/mf8/  //进入目录
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip  //下载中文版
unzip Ghost-0.7.4-zh-full.zip //解压
npm install --production //跑跑试试,4.x 版本可能会提醒你兼容问题,其实没关系的,不理会即可
AI 代码解读

然后打开 http://yourdomain:2368 看看能不能访问

编辑 config

我们要修改 config.js 文件,如果没有就讲 config.example.js 改了,

cp config.example.js config.js
AI 代码解读

一,修改域名

url: 'http://my-ghost-blog.com', 修改成 url: 'http://你的域名',

如果使用了 ssl,且不想全站的话,再添加:urlSSL: https://s你的域名

二,修改,邮箱

mail: {}, 修改成

        mail: {
           transport: 'SMTP',
           from: '发件人地址',
           options: {
                     host: 'smtp 邮件发送服务器',
                     secureConnection: true, // 填 true 则使用加密传输.false 则不
                     port: 465, //如果上面填 true,这里填465;如果上面填 false,这里填 25
                     auth: {
                            user: '邮箱地址',
                            pass: 'A邮箱密码'
                            }
                    }
                },
AI 代码解读

如果你不想多用户合作,其实不设置也没关系。

三,修改数据库

如果,你想使用 sqlite 的话,则不用改,如果使用 pg 或者 MariaDB(Mysql) 则改。

        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
AI 代码解读

MariaDB(Mysql)

        database: {
            client: 'mysql', // MariaDB 也填这个
            connection: {
                host     : 'localhost', //如果使用 RDS 等云数据库则修改为连接地址
                user     : '用户名称',
                password : '用户密码',
                database : '数据库名称',
                charset  : 'utf8' //字符集
            },
            debug: false
        },
AI 代码解读

这里的话,默认连接次数是 min: 2, max: 10,如果需要改动,则添加:


pool: {
    min: 2,
    max: 20
  }
AI 代码解读

一只保持连接,则设置 min: 0

PostgreSQL

database: {
            client: 'pg',
            connection: {
                host     : 'localhost',
                user     : '用户名称',
                password : '用户密码',
                database : '数据库名称',
                charset  : 'utf8' //字符集
                //port     : '如果要设置端口,请在这里填写'
            }
        },
AI 代码解读

四,设置端口

        server: {
            host: '127.0.0.1', //部分配置可能需要设置成 0.0.0.0
            port: '2368' //端口,如果要安装多个博客,那就要设置多个端口了。
        },
AI 代码解读

五,设置附件

内容较多,而且 Ghostchina 的设置教程也都失效了,有空我单独写一篇介绍一下,会点英语的都看的懂的。

如果你还要设置更多,请参考官方文档:http://support.ghost.org/config/

运行

    npm install --production
    npm start
AI 代码解读

再打开 http://yourdomain:2368 就能跑气来了,如果你发现你修改的参数并没有生效,则可能是因为运行在 development 模式,而非 production
所以,我们需要修改 /core/index.js 文件,将

    process.env.NODE_ENV = process.env.NODE_ENV || 'development';
AI 代码解读

修改为:

process.env.NODE_ENV = process.env.NODE_ENV || 'production';
AI 代码解读

守护进程

当你将 SSH 关闭,或者 Ctrl + c 后,会发现网站就打不开了,因此这里我们需要来维持 Ghost 的运行。

守护进程一般用如下软件:

Upstart:只能在开机启动,无法守护进程

PM2:可开机自启动,程序崩溃自动重新打开,可监控运行
Supervisor:可开机自启动,程序崩溃自动重新打开
Forever:不能开机自启动

所以,这里我们选择 Supervisor 或 PM2,MF8.biz 使用后者。

Supervisor

Debian/Ubuntu: apt-get install supervisor
Fedora/RHEL: yum installsupervisor
其他大多数发行版: easy_install supervisor

确保使用service supervisor start启动了 supervisor ,然后为ghost创建安装脚本, vi /etc/supervisor/conf.d/ghost.conf 输入以下内容,记得替换{ghost_path}

注: {ghost_path} 就是你安装 Ghost 的路径,例如米饭粑的 Ghost 在/data/wwwroot/mf8 那么路径就是这个。

[program:ghost]
command = node {ghost_path}/index.js
directory = {ghost_path}/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
AI 代码解读

PM2

安装

npm install pm2 大陆主机安装了 cnpm,就用 cnpm install pm2

在你的 ghost 目录,运行,

NODE_ENV=production pm2 start index.js --name "ghost"
AI 代码解读

开机自启动,

pm2 startup ubuntu //可以换成,centos、debian
AI 代码解读

保存,

pm2 save
AI 代码解读

Nginx 反代

在对应域名的 conf 中,添加

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
AI 代码解读

就可以反代了,如果是 https,则是:

    location ~ ^/(?:ghost|signout) {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:2368;
        add_header Cache-Control "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0";
        proxy_set_header X-Forwarded-Proto https;
    }
AI 代码解读
目录
打赏
0
0
0
0
3121
分享
相关文章
MySql主从复制的部署实现
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线 🍅参考文献:mysql官网
289 0
MySql主从复制的部署实现
CentOS 7.5搭建lnmp环境,并实现数据库远程连接及laravel和tp5项目部署配置
CentOS 7.5搭建lnmp环境,并实现数据库远程连接及laravel和tp5项目部署配置
398 0
CentOS 7.5搭建lnmp环境,并实现数据库远程连接及laravel和tp5项目部署配置
LAMP架构介绍及配置命令讲解
本篇文章主要是对LAMP架构的概念介绍,以及相关配置命令的讲解。实例操作在下一篇文章中进行演示。 一、LAMP架构介绍 1.1 概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。
826 0
RedHat7.4 Yum环境下搭建LAMP实现库站分离(部署wordpress博客)
RedHat7.4 Yum环境下搭建LAMP实现库站分离(部署wordpress博客)
229 0
RedHat7.4 Yum环境下搭建LAMP实现库站分离(部署wordpress博客)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等