Ghost是一个基于Node.js开发的免费开源博客平台,用于简化博客的写作发布等流程。本文介绍如何在Ubuntu 20.04操作系统的ECS实例上部署Ghost博客。
背景信息
搭建Ghost博客分为开发模式(development)和生产模式(production),建议您在第一次搭建Ghost博客时使用开发模式,方便对Ghost博客调试。本文操作示例适用于初次使用阿里云进行建站的个人用户。关于Ghost博客的更多信息,请参见Getting started with Ghost。
随着业务的扩展,您可以使用阿里云的产品平台,平滑地横向和纵向扩展服务容量,例如:
- 扩展单个ECS实例的CPU和内存规格,增强服务器的处理能力。
- 增加多台ECS实例,并利用阿里云负载均衡,在多个实例中进行负载的均衡分配。
- 利用阿里云弹性伸缩,根据业务量自动增加或减少ECS实例的数量。
- 利用阿里云对象存储OSS,存储静态网页和海量图片、视频等。
准备工作
使用本文的操作步骤,ECS实例必须满足以下条件:
- 实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见绑定EIP。
- 操作系统:Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04、Ubuntu 22.04。
说明
本文所使用的系统为Ubuntu 20.04,其他版本的Ubuntu中,软件包版本可能有所差异,请以实际为准。 - 实例安全组的入方向规则已放行22、80、443与2368端口。具体操作,请参见添加安全组规则。
(可选)步骤一:创建新用户
说明 :如果您创建ECS实例已设置了ecs-user用户,请忽略该步骤,直接使用ecs-user用户执行步骤二:安装Nginx。
由于Ghost官方不推荐使用root用户直接操作,因此您需要重新创建新的用户,并为其配置权限。
1.远程登录ECS实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
2.执行以下命令,创建新用户。本步骤以创建test
用户为例。
adduser test
a.在New password:
和Retype new password:
提示信息中,请按照提示输入并确认用户密码,密码默认不显示,输入完成后按Enter
。
b.在Enter the new value, or press ENTER for the default
提示信息中,按Enter
保持默认即可,您也可以根据实际情况填写用户相关信息。
c.在Is the information correct? [Y/n]
提示信息中,输入Y
确认信息,并按Enter
,完成设置。
- 具体配置类似如下所示。
root@iZbp1g2d4dpki2mf63b****:~# adduser test Adding user `test' ... Adding new group `test' (1000) ... Adding new user `test' (1000) with group `test' ... Creating home directory `/home/test' ... Copying files from `/etc/skel' ... 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
3.执行以下命令,将新创建的用户添加到组。
usermod -a -G sudo test
4.执行以下命令,切换到test
用户。
su - test
步骤二:安装Nginx
重要 :请确保您的ECS实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见绑定EIP。
部署Ghost博客,需要安装Nginx作为HTTP服务器。
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.33-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
2.执行以下命令,连接MySQL。
Ubuntu 18.04/20.04/22.04
sudo mysql
Ubuntu 16.04
mysql -u root -p
3.执行以下命令,创建Ghost使用的数据库。
本文以ghost_data为例。
CREATE DATABASE ghost_data;
4.(可选)当ECS实例的操作系统为Ubuntu 18.04/22.04/22.04时,请执行以下命令,设置root
用户密码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '输入root账号密码';
5.执行以下命令,退出 MySQL。
exit
步骤四:安装Node.js
安装Ghost前,需要先安装Ghost所需的Node.js。
1.执行以下命令,下载Node.js安装源。
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
2.执行以下命令,安装Node.js。
sudo apt-get install -y nodejs
3.执行以下命令,查看Node.js版本。
node -v
回显信息类似如下所示。
test@iZbp1g2d4dpki2mf63b****:~$ node -v v16.20.1
步骤五:安装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安装的过程中,需要配置相关参数。具体如下图所示:
参数说明如下:
Enter your blog URL:请输入已解析的域名,例如:http://exapmle.com
。本示例中使用公网IP作为测试,输入http://47.98.XX.XX
。
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。
4.测试访问Ghost博客。
访问Ghost前台首页或后台管理页面的操作说明如下:
a.前台首页
在本地Windows主机或其他任一具有公网访问能力的Windows主机中,打开浏览器并输入ECS实例公网IP地址,访问Ghost前台首页。
说明 :如果访问出现502,请检查是否是实例内的防火墙问题,您可以关闭防火墙。
b.后台管理页面
在本地Windows主机或其他任一具有公网访问能力的Windows主机中,打开浏览器并输入ECS实例公网IP地址/ghost
,访问Ghost后台管理页面。
首次访问Ghost后台管理页面时,您需要根据页面提示完成Ghost博客的相关配置,请您以实际页面的提示信息完成配置。
域名相关操作指引
如果您有建站需求,但还没有属于自己的域名,可以先购买域名。购买域名后,如果您的网站部署在中国内地节点服务器上,则必须先完成域名备案,再把域名解析至部署网站的ECS实例上。相关操作指引如下: