Ghost是一个基于Node.js开发的免费开源博客平台,用于简化博客的写作发布等流程。本文介绍如何在Ubuntu 20.04操作系统的ECS实例上部署Ghost博客。

前提条件

  • 已创建一台ECS实例。具体操作,请参见使用向导创建实例
    本文的示例步骤中,使用以下配置的ECS实例。实际操作时,建议您保持操作系统版本一致,避免因操作系统版本问题导致的命令执行报错。
    • 实例规格:ecs.c6.large
    • 操作系统:公共镜像Ubuntu 20.04
    • 网络类型:专有网络VPC
    • IP地址:公网IP
  • 已在实例安全组的入方向添加安全组规则并放行22、80、443与2368端口。具体操作,请参见添加安全组规则

背景信息

搭建Ghost博客分为开发模式(development)和生产模式(production),建议您在第一次搭建Ghost博客时使用开发模式,方便对Ghost博客的调试。本文操作示例适用于初次使用阿里云进行建站的个人用户。

随着业务的扩展,您可以使用阿里云的产品平台,平滑地横向和纵向扩展服务容量,例如:
  • 扩展单个ECS实例的CPU和内存规格,增强服务器的处理能力。
  • 增加多台ECS实例,并利用阿里云负载均衡,在多个实例中进行负载的均衡分配。
  • 利用阿里云弹性伸缩,根据业务量自动增加或减少ECS实例的数量。
  • 利用阿里云对象存储OSS,存储静态网页和海量图片、视频等。

步骤一:创建新用户

由于Ghost官方不推荐使用root用户直接操作,因此您需要重新创建新的用户,并为其配置权限。

  1. 远程登录ECS实例。
    具体操作,请参见连接方式概述
  2. 执行以下命令,创建新用户。
    本步骤以创建test用户为例。
    adduser test
    1. New password:Retype new password:提示信息中,请按照提示输入并确认用户密码,密码默认不显示,输入完成后按Enter
    2. Enter the new value, or press ENTER for the default提示信息中,按Enter保持默认即可,您也可以根据实际情况填写用户相关信息。
    3. Is the information correct? [Y/n]提示信息中,输入Y确认信息,并按Enter,完成设置。
    具体配置类似如下所示。
    root@iZbp1g2d4dpki2mf63b****:~# adduser test
    Adding user `test' ...
    Adding new group `user' (1000) ...
    Adding new user `user' (1000) with group `test' ...
    Creating home directory `/home/user' ...
    Copying files from `/etc/skel' ...
    New password:
    Retype new password:
    passwd: password updated successfully
    Changing the user information for user
    Enter the new value, or press ENTER for the default
            Full Name []:
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [Y/n] Y
  3. 执行以下命令,将新创建的用户添加到组。
    usermod -a -G sudo test
  4. 执行以下命令,切换到test用户。
    su test

步骤二:安装Nginx

部署Ghost博客,需要安装Nginx作为HTTP服务器。本步骤以安装Nginx为例。

  1. 依次执行以下命令,更新Linux操作系统和软件包。
    sudo apt-get update
    sudo apt-get upgrade -y
  2. 安装Nginx。
    sudo apt-get install -y nginx
    安装完成后,您可以运行nginx -v命令,查看Nginx的版本信息。
    test@iZbp1g2d4dpki2mf63b****:$ nginx -v
    nginx version: nginx/1.18.0 (Ubuntu)
    说明 本示例操作中安装的Nginx版本为1.18.0。软件安装包不定期更新,请您以实际安装的Nginx版本信息为准。

步骤三:安装MySQL

MySQL是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装。它使用关系数据库和SQL结构化查询语言)来管理其数据。

  1. 执行以下命令,安装MySQL。
    sudo apt-get install -y mysql-server
    执行mysql -V命令,查看MySQL版本号。回显信息类似如下所示,表示MySQL安装成功。
    test@iZbp1g2d4dpki2mf63b****:~$ mysql -V
    mysql  Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
  2. 执行以下命令,连接MySQL。
    sudo mysql
  3. 执行以下命令,创建Ghost使用的数据库。
    本文以ghost_data为例。
    CREATE DATABASE ghost_data;
  4. 执行以下命令,设置root用户密码。
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '输入root账号密码';
  5. 执行以下命令,退出 MySQL。
    \q

步骤四:安装Node.js

安装Ghost前,需要先安装Ghost所需的Node.js。

  1. 执行以下命令,下载Node.js安装源。
     curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
  2. 执行以下命令,安装Node.js。
     sudo apt-get install -y nodejs
  3. 执行以下命令,查看Node.js版本。
    node -v
    npm -v
    回显信息类似如下所示。
    test@iZbp1g2d4dpki2mf63b****:~$ node -v
    v14.19.3
    test@iZbp1g2d4dpki2mf63b****:~$ npm -v
    6.14.17

步骤五:安装Ghost

  1. 安装Ghost-CLI命令行工具,以便快速配置Ghost。
    sudo npm install ghost-cli@latest -g
  2. 依次执行以下命令,创建Ghost安装目录并授权。
    sudo mkdir -p /var/www/ghost
    sudo chown test:test /var/www/ghost
    sudo chmod 775 /var/www/ghost
  3. 依次执行以下命令,安装Ghost。
    cd /var/www/ghost
    ghost install
    Ghost安装的过程中,需要配置相关参数。具体如下图所示:saasa参数说明如下:
    • Enter your blog URL:请输入已解析的域名,例如:http://exapmle.com。本示例中使用公网IP作为测试,输入http://47.98.XX.XX。
    • Enter your MySQL hostname:请输入数据库连接地址。按Enter保持默认即可。
    • Enter your MySQL username:请输入数据库用户名,输入root后按Enter
    • Enter your MySQL password :请输入数据库密码,输入数据库密码后按Enter
      说明 数据库密码步骤三中设置的密码。
    • Enter your database name:输入Ghost使用的数据库名称。输入ghost_data后按Enter
      说明 数据库名称为步骤三中创建的数据库,本示例为ghost_data。
    其余配置请结合实际情况及页面提示完成。完成设置后,界面下方会输出Ghost的管理员访问地址。例如:http://47.98.XX.XX/ghost。
  4. 测试访问Ghost博客。
    访问Ghost前台首页或后台管理页面的操作说明如下:
    • 前台首页
      在本地Windows主机或其他任一具有公网访问能力的Windows主机中,打开浏览器并输入ECS实例公网IP地址,访问Ghost前台首页。adada
      说明 如果访问出现502,请检查是否是实例内的防火墙问题,您可以关闭防火墙。
    • 后台管理页面
      在本地Windows主机或其他任一具有公网访问能力的Windows主机中,打开浏览器并输入ECS实例公网IP地址/ghost,访问Ghost后台管理页面。adad23
      首次访问Ghost后台管理页面时,您需要根据页面提示完成Ghost博客的相关配置,请您以实际页面的提示信息完成配置。

域名相关操作指引

如果您有建站需求,且还没有属于自己的域名,可以先购买域名。购买域名后,如果您的网站部署在中国内地(大陆)节点服务器上,则必须先完成域名备案,再把域名解析至部署网站的ECS实例上。相关操作指引如下:

  • 购买域名

    您可以给自己的网站设定一个单独的域名。您的网站来访用户可以使用易记的域名访问您的网站,而不需要使用复杂的IP地址。

    建议登录阿里云购买域名。更多信息,请参见 域名注册基本流程

  • 域名备案

    对于域名指向中国内地(大陆)节点服务器上的网站,必须进行网站备案。在域名获得备案号之前,网站无法开通使用。如果您是首次备案,请参见首次备案流程,其他情况请参见ICP备案流程概述

  • 域名解析

    您需要在阿里云的云解析DNS中进行域名解析之后,网站的来访用户才能通过域名访问您的网站。具体操作请参见设置域名解析