Ghost是基于Node.js开发的一款免费的非常出色的开源博客平台,具有即时预览、极致简约、支持多用户等特性,本文将指导用户在Ubuntu20.04操作系统上的云主机实例上部署Ghost博客。
前置条件
使用本文的操作步骤,弹性云服务器实例必须满足以下前置:
实例需要分配公网IP或绑定弹性公网IP。
操作系统:Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04、Ubuntu 22.04。
实例所在的安全组入方向安全规则放行22、80、4423、2368端口。
创建新用户
由于Ghost官方不推荐使用root用户直接进行操作。因此需要重新创建新的用户,并且为其配置权限。
1. 执行以下命令,创建新用户。
以创建test用户为例子。
adduser test
具体配置如下:
root@ecm-2d20-Ghost:~# 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
2. 执行以下命令,将新创建的用户添加到组。
usermod -a -G sudo test
执行以下命令,切换到test用户。
su - test
安装gcc和g++
1. 执行以下命令安装常用开发编译工具。
sudo apt-get install build-essential
2. 执行如下命令,安装gcc。
apt-get install gcc
3. 执行如下命令查看gcc版本。
gcc --version
回显信息:
root@ecm-da5b:~# gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
4. 执行以下命令安装g++。
sudo apt-get install g++
5. 使用以下命令查看g++版本。
g++ --version
回显信息:
root@ecm-da5b:~# g++ --version
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
安装Node.js
在安装Ghost前,需要先安装Ghost所需要的Node.js。
1. 执行以下命令,进行Node..js安装源的下载。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
2. 执行以下命令,进行Node.js的安装。
sudo apt-get install -y nodejs
3. 在Node.js安装完成后,执行以下命令查看Node.js版本和npm版本。
node -v
npm –v
回显信息:
test@ecm-2d20-Ghost:~$ node -v
v16.20.2
test@ecm-2d20-Ghost:~$ npm -v
8.19.4
安装Nginx
部署Ghost博客,需要安装Nginx作为HTTP服务器。
1. 执行以下命令,进行Nginx安装。
sudo apt-get update
sudo apt-get install nginx
2. 安装完成后,执行以下命令查看Nginx版本。
nginx –v
回显如下:
test@ecm-2d20-Ghost:~$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
3. 验证Nginx是否正常启动。
浏览器输入公网IP地址或者域名进行访问Nginx,出现如下页面,则说明Nginx安装成功。
4. Nginx配置信息修改(可选)。
输入以下命令修改配置文件。
vim /etc/nginx/nginx.conf
输入以下内容:
server {listen 8001; //监听端口号 本文选择监听端口为8001,避免出现80端口冲突问题
server_name 171.111.xxx.xxx; #这里写你的域名或者ip地址
location / {proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
安装MySQL
1. 执行以下命令,安装MySQL。
sudo apt-get install -y mysql-server
2. 输入以下命令查看MySQL版本。
mysql –V
回显如下:
root@ecm-da5b:~# mysql -V
mysql Ver 8.0.34-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
3. 打开MySQL控制台
通常,在未执行任何配置的情况下在 Ubuntu 上全新安装 MySQL 后,访问服务器的用户将使用身份验证套接字 (auth_socket) 插件进行身份验证。
auth_socket 的使用会阻碍服务器使用密码对用户进行身份验证。它不仅会引发安全问题,而且还会使用户无法使用外部程序访问数据库。因此我们需要将身份验证方法从 auth_socket 更改为使用 mysql_native_password(密码验证)。输入以下命令,打开MySQL控制台。
sudo mysql
4. 设置root用户密码。
输入以下命令将MySQL身份验证方式从 auth_socket 更改为使用 mysql_native_password(密码验证)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '输入root账号的密码
5. 执行以下命令,创建Ghost使用的数据库。
本文以ghost为例
create database ghost
6. 输入以下命令查看数据库创建情况。
show databases
回显信息:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| ghost |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
7. 执行以下命令,退出MySQL。
exit
8. 避免数据库可能存在的中文乱码问题,可执行以下命令设置MySQL编码。
sudo vi /etc/my.cnf
输入以下内容,之后保存并退出。
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
9. 执行以下命令,重启MySQL生效
sudo /usr/sbin/service mysql restart
安装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
一些配置参数如下:
Enter your blog URL:请输入已解析的域名或者公网IP,请输入 http://(您的域名或者公网IP)。
Enter your MySQL hostname:请输入数据库连接地址,请输入 localhost 后按 Enter。
Enter your MySQL username:请输入数据库用户名,请输入 root 后按 Enter。
Enter your MySQL password:请输入数据库密码,请输入在设置root账户中已设置的密码后按 Enter。
Enter your database name:请输入 Ghost 使用的数据库的名称,请输入在创建数据库中已创建的ghost后按 Enter。
之后会有一些参数的配置,可按照需要进行设置,本文均输入yes。
4. 测试访问Ghost博客。
访问Ghost前台首页。
在任何具有访问公网能力的主机中,打开浏览器输入云主机实例的公网IP地址或者域名,即可访问Ghost前台首页。
例如:http://公网IP地址或者域名
如果想要进入管理员后台的话只需要在域名或者公网IP地址的后面加上/ghost即可进入,第一次进入需要进行账号注册,然后便能进入后台。
例如:https://公网IP或者域名/ghost