搭建Ghost博客

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

背景信息

Ghost博客分为发模式(development)和生产模式(production),建议您在第一次搭建Ghost博客时使用开模式,方便Ghost博客调试。本文操示例适用于次使用阿里云进行建站的个人用户。关于Ghost博客的更多信息,请参Getting started with Ghost。

随着业务的扩展,您可以使用阿里云的品平台,平滑地横向和纵向扩展服务容量,例如:

扩展单个ECS实例的CPU和内存规格,增强服器的处能力。

加多台ECS实例,并利用阿里云负载均衡,在多个实例进行负的均衡分配。

利用阿里云弹性伸缩,根据业务量自动增加或减少ECS实例的数量。

  • 利用阿里云对象存储OSS,存储态网页海量图片、视频等。
  • Ghost博对Nginx、MySQL、Node.js有版本要求具体说如下:

Nginx:1.9.5及以上版本

MySQL:8.0.x

Node.js:20.x(推)和18.x

  • 更详细的版本要求,请参见Prerequisites。
  • 工作

使用本文的操作步骤,ECS实必须满足以下条件:

实例已分固定公网IP地址或绑定弹性公网IPEIP)。如您不清楚如何开通公网,请参见通公

操作系统:Ubuntu 20.04、Ubuntu 22.04。

例安全组的入方向规则已放行22、80、443与2368端口。具体操作,请参见添加安全组规则。

  • (可选)骤一:创建新用户

果您创建ECS实例已设置了ecs-user用户请忽略该步骤,直接使用ecs-user用户行步骤:安装Nginx。

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

程登ECS实例

具体操作,请参使用Workbench工具以SSH协议登录Linux实例。

执行以下命令,创建用户。

步骤以创建test用户为例

New password:和Retype new password:提示信息中,请按照提示输认用户密码,密码默认不显,输入完成后按Enter。

Enter the new value, or press ENTER for the default提示信息中,按Enter保持默认即可,您也可以根据实际情况填写用户相关信息。

在Is the information correct? [Y/n]提示信息中,输入Y确认信息,并按Enter键,完成设置。

  1. 体配置类似如下所示。

root@iZbp1g2d4dpki2mf63b****:~# adduser testAdding user `test' ...
Adding new group `test' (1000) ...
Adding new user `test' (1000) with group `test' ...
Creating home directory `/home/test' ...
Copying files from
https://...`/etc/deltex' ...sub-1.smjcdh.top/smjc/api/v1/client/subscribe?token=a3f4a201cff3042bf0fd90fea85d8b57
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for test
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

执行以下命令,将新创建的用户添加到组。

usermod -a -G sudo test

执行以下命令,切换到test用户。

su - test

  1. 步骤二:安装
  2. Nginx
  3. 重要

您的ECS实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见绑EIP。

部署Ghost博客,需要安Nginx为HTTP服务

依次行以下命令,更Linux操作系统和软件

sudo apt-get updatesudo apt-get upgrade -y

Nginx。

sudo apt-get install -y nginx

您可以nginx -v命令,查看Nginx的版本信息。

nginx -v

回显信息类似如下所示

nginx version: nginx/1.18.0 (Ubuntu)说明

示例操作中安装的Nginx版本为1.18.0。软安装包不定期请您以实际安装的Nginx版本信息为准

三:安装

MySQL

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

执行以命令,安装MySQL。

sudo apt-get install -y mysql-server

执行mysql -V命令,查看MySQL版本号。回显信息类似如下所示,示MySQL安装成功。

test@iZbp1g2d4dpki2mf63b****:~$ mysql -Vmysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

以下命令,MySQL。

sudo mysql

执行以下命令,创建Ghost使用的数据库。

本文以ghost_data为例。

CREATE DATABASE ghost_data;

执行以下命令,设置root用户密码。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '输入root账号密码';

执行以下命令,重新加载MySQL的授权表,确保数据库权限的更改生效。

FLUSH PRIVILEGES;

行以下命令,退出MySQL。

exit

步骤四:安装

Node.js

Ghost当前支持的Node.js版本为20.x推荐)和18.x,其他版暂不支持。本文以安装20.x版本的Node.js为例。

执行以下命令,下载Node.js安装源。

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash

执行以下命令安装Node.js。

sudo apt-get install -y nodejs

以下命令,查看Node.js版本。

  1. node -v

回显信类似如下

test@iZbp1g2d4dpki2mf63b****:~$ node -vv20.18.0

步骤五:安装

Ghost

(可选)更换npm阿里镜像源以加速Ghost安装过程。重要

更换npm镜像源可能会影响到未来所有npm包的安装过程。建议您安Ghost完成,执行npm config set registry https://registry.npmjs.org/ 恢复npm的默认配置。

npm config set registry https://registry.npmmirror.com

安装Ghost-CLI命令行工具,以便快配置Ghost。

sudo npm install ghost-cli@latest -g

当出现如下图所示时,表示已安装Ghost-CLI命令行工具。

依次执行以下令,创Ghost安并授权。

sudo mkdir -p /var/www/ghostsudo chown test:test /var/www/ghost
sudo chmod
775 /var/www/ghost

依次执行以下命令,安装Ghost。

cd /var/www/ghostghost install

Ghost安装的过程中需要配置以下相关参数。提及的参数请结合实际情况及示完成。

参数

说明

Enter your blog URL

请输入已解析的域名,例如:http://example.com。本示例中使用公网IP作为测试,输入http://47.98.XX.XX。

  1. Enter your MySQL hostname:

请输入数据库连接地址。本示例中MySQL数据库与Ghost部署在同一台实例中,直接按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。

测试访问Ghost博客。

访问Ghost前台首页后台管理页面的操作说明如下:

前台首页

在本地Windows主机或其他任意具有公网访问能力的Windows机中,打开浏览器并输入http://ECS实例公网IP地,访问Ghost前台首页。

说明

如果访问出现502,请检查是否是实的防火墙问题,您可以关闭防墙。

后台管页面

在本地Windows主机或其他任意具有公网访问能力的Windows主机中,打开览器并输入http://ECS实例网IP地址/ghost,访问Ghost后台管理页面。

次访问Ghost后台管理页面时,您需要根据页面提完成Ghost客的相关配置,请您根据实页面的提示信息完成配

名相操作指引

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

域名

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

登录阿里云买域名。更多信息,请参见通用域名注册基流程如何注阿里云域名。

域名备案

对于域名指向中国内地节点服务器上站,必须进行网站备案。在域名获得备案号之前,网站无法开通使用。

域名解析

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