基于 Amazon AWS EC2 部署 Ghost 博客

前言

Ghost 是基于 Node.js 的开源博客平台,由前 WordPress UI 部门主管 John O’Nolan 和 WordPress 高级工程师 Hannah Wolfe 创立,目的是为了给用户提供一种更加纯粹的内容写作与发布平台。

参考:Ghost 中文网

现在很多程序员的个人博客都是用Ghost搭建的,博客效果图类似如下效果,简洁舒服的一种博客风格:

基于 Amazon AWS EC2 部署 Ghost 博客_第1张图片
效果图

如果你也想搭建一个Ghost博客,却不知道从何下手,那么必须看这个项目——【基于 Amazon AWS EC2 部署 Ghost 博客】,项目介绍如何通过在 Amazon AWS EC2 服务器上部署 Ghost v0.9.0 来创建个人博客。有详细的开发步骤和代码详解。

而这篇文章呢,就简单的介绍这个项目,以及其中的重要的开发步骤和代码,想看详细的步骤和代码,可以点击【基于 Amazon AWS EC2 部署 Ghost 博客】进行查看。

主要开发流程:

  • 注册 AWS 并创建 EC2 服务器
  • 在 EC2 中配置 Node.js
  • 在 EC2 中配置安装 Ghost 服务
  • 在 EC2 中配置 nginx 和 pm2
  • 编写第一篇 Ghost 博客

创建并使用 AWS EC2

1、注册 AWS

进入 AWS 官网(https://aws.amazon.com/cn/)进行账户注册,点击 创建免费账户
进行注册。已经有 AWS 账号的同学可跳过此步,直接登陆。

此处输入图片的描述

补充:自 2006 年初起,亚马逊 AWS 开始在云中为各种规模的公司提供技术服务平台。利用亚马逊 AWS,软件开发人员可以轻松购买计算、存储、数据库和其他基于 Internet 的服务来支持其应用程序。开发人员能够灵活选择任何开发平台或编程环境,以便于其尝试解决问题。由于开发人员只需按使用量付费,无需前期资本支出,亚马逊 AWS 是向最终用户交付计算资源、保存的数据和其他应用程序的一种最经济划算的方式。

参考:AWS 中国

在注册页面中,需要输入邮箱,姓名及密码:

此处输入图片的描述

2、创建 AWS EC2

注册之后,登陆 AWS,登陆后会直接进入控制台界面,点击右上角选择创建 EC2 服务器所在的区域,可以选择世界各地的数据中心。

此处输入图片的描述

然后点击左上角的 服务,选择其中的 EC2进入到 EC2 控制面板,在控制面板点击 启动实例 开始创建 EC2。

此处输入图片的描述

启动实例的创建过程需要多个步骤,每个步骤都增加新的配置内容,最后通过审核确认后创建。

步骤一选择一个 Amazon 系统映像,我们选择Ubuntu 14.04 LTS 64 位 HVM SSD这个 AMI。

此处输入图片的描述

实例类型可以根据自己预估的访问量选择配置:

此处输入图片的描述

后续步骤都可以使用默认的选项:

此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

安全组配置位置需要打开 Ghost 博客将使用的端口以及 SSH 使用的 22 端口:

此处输入图片的描述

最后审核并启动 EC2。

3、SSH 登陆 AWS EC2

EC2 可以使用 SSH 密钥登陆。拥有一台 EC2 服务器之后,通过 AWS 控制台下载证书,然后使用常用的 SSH 客户端,例如 putty 登陆 EC2 服务器。

此处输入图片的描述

后续的实验操作都是在 SSH 登陆 EC2 服务器后的命令行中执行的。

配置 Node.js

关于如何配置 Node.js,由于篇幅有限,就不介绍了,点击【基于 Amazon AWS EC2 部署 Ghost 博客】即可进行查看

配置安装 Ghost

创建并进入文件夹shiyanlou_blog/

$ mkdir shiyanlou_blog$ cd shiyanlou_blog

下载 Ghost 。

$ wget https://ghost.org/zip/ghost-latest.zip
此处输入图片的描述

下载并安装 zip 的解压缩软件 unzip 。

$ sudo apt-get install unzip

对刚下载的 ghost-latest.zip进行解压。

$ unzip -uo ghost-latest.zip -d ghost

进入刚刚解压缩所得的 ghost文件夹。

$ cd ghost

使用 npm安装 ghost,注意 production 前面是两横线--

$ npm install --production

温馨提示:npm install 这一步操作需要下载安装一些依赖包,而由于国内网络原因可能导致这个过程安装失败,那么可以试一下安装这个版本 Ghost v0.7.4 中文版。这个版本虽然要比实验的 v0.9.0 来的低一些,但是不影响后续操作,另外这个已经进行汉化,很适合那些不是很喜欢看英文的同学,此外最重要的是这个版本已经集成了依赖包,从而免去了 npm install的过程,下载下来解压缩之后即可用。

获取方式:

$ wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip

之后执行$ npm start

看到后台输出 Listening on 127.0.0.1:2368,说明 Ghost 已经正常安装和运行了。

此处输入图片的描述

补充:这里可能有人会奇怪为什么 Ghost 默认在 development 模式运行而执行npm install --production
却是安装的 production 版本。如果在安装 Ghost 时不包含 --production,确实不会产生什么问题,但它会安装额外的仅仅是对想要开发 Ghost 核心的人有用的软件包。这就需要我们有一个特定的包,可以使用 npm install -g grunt-cli 命令安装在全局中,但是如果我们只是想作为一个博客运行 Ghost 的话,它是不是必需的。

参考:Ghost 使用指南

接下来修改 ghost 目录下的 config.jsconfig.js文件中的 config 配置的前两项分别为 production 和 development
, 它们分别设定了 Ghost 运行的两大模式,其中 production 是生产模式,而 development 是开发模式,也是默认的运行模式。两种模式并没有存在太大差别,只是这样环境可以允许我们在可能运行的不同的模式中创建不同的配置,通常意义上来讲 development 用于 Ghost 调试和开发,而当我们公开运行 Ghost 的时候选择 production 模式。以下我们只要修改 production 的内容即可。

注意:config.js 只有在第一次运行 Ghost 之后才会生成,这个文件里边的信息指定了 Ghost 运行的端口号,采用的数据库等信息。如果你尚未第一次运行 Ghost ,那么目录底下将不会有 config.js 这个文件,但是目录底下已经有了文件config.example.js,这个文件内容和config.js 一样,所以可以通过运行指令 $ cp config.example.js config.js 自行创建,再修改。

运行命令$ vim config.js打开文件,修改的部分内容如下:

production: {
        url: '输入你的域名或者ip(格式: http://xxx.xxx.xxx.xxx)',
        mail: {}, //这一项可配置可不配置
        database: {
            client: 'sqlite3',  // 默认使用自带的 sqlite3 数据库
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },

        server: {
            host: '0.0.0.0',  # 将此处修改为 0.0.0.0 这样程序才能在公网监听
            port: '2368'
        }
    },

如果不修改数据库的话,只要修改 url 和 host 便行了。

补充:如果你想要使用 mysql 的话,database那一项的配置方法如下:

database: {  
      client: 'mysql',
      connection: {
           host: 'localhost',
           user: 'xxx', // 用户名
           password: 'xxxxx', // 密码 
           database: 'xxx', // 数据库名
           charset: 'utf8'
       },
       debug: false
},

然后使用 npm 命令来试运行,这里使用了 NODE_ENV=production 指定在 production 模式下运行 Ghost 。

$ NODE_ENV=production npm start index.js
此处输入图片的描述

在浏览器地址栏中输入 http://xxx.xxx.xxx.xxx:2368 进行访问,如果出现如下界面则说明配置成功。

温馨提示:访问地址中 xxx 部分对应你的云服务器的 ip 地址。

此处输入图片的描述

配置 nginx 和 pm2

通过以上的几步操作我们已经可以通过 ip 地址加端口号的形式来访问 Ghost 页面了,但是还存在点问题。

  • 我们现在是通过 SSH 终端来启动云服务器中的 Ghost 进程,但是一旦把 SSH 终端断开,Ghost 进程也将被终止,从而无法进行访问。
  • Ghost 服务一旦挂掉了就无法自动重启。
  • 另外目前这样无法实现通过域名直接对博客进行访问。

所以接下来我们还要请出以下的两个工具来帮助我们解决这些问题。

关于如何配置 nginx 和 pm2,由于篇幅有限,就不介绍了,点击【基于 Amazon AWS EC2 部署 Ghost 博客】即可进行查看~

你可能感兴趣的:(基于 Amazon AWS EC2 部署 Ghost 博客)