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用户直接进行操作。因此需要重新创建新的用户,并且为其配置权限。
-
执行以下命令,创建新用户。
以创建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
-
执行以下命令,将新创建的用户添加到组。
usermod -a -G sudo test
-
执行以下命令,切换到test用户。
su - test
安装gcc和g++
-
执行以下命令安装常用开发编译工具。
sudo apt-get install build-essential
-
执行如下命令,安装gcc。
apt-get install gcc
-
执行如下命令查看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.
-
执行以下命令安装g++。
sudo apt-get install g++
-
使用以下命令查看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。
-
执行以下命令,进行Node.js安装源的下载。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
-
执行以下命令,进行Node.js的安装。
sudo apt-get install -y nodejs
-
在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服务器。
-
执行以下命令,进行Nginx安装。
sudo apt-get update sudo apt-get install nginx
-
安装完成后,执行以下命令查看Nginx版本。
nginx –v
回显如下:
test@ecm-2d20-Ghost:~$ nginx -v nginx version: nginx/1.18.0 (Ubuntu)
-
验证Nginx是否正常启动。
浏览器输入公网IP地址或者域名进行访问Nginx,出现如下页面,则说明Nginx安装成功。
-
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
-
执行以下命令,安装MySQL。
sudo apt-get install -y mysql-server
-
输入以下命令查看MySQL版本。
mysql –V
回显如下:
root@ecm-da5b:~# mysql -V mysql Ver 8.0.34-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
-
打开MySQL控制台
通常,在未执行任何配置的情况下在 Ubuntu 上全新安装 MySQL 后,访问服务器的用户将使用身份验证套接字 (auth_socket) 插件进行身份验证。
auth_socket 的使用会阻碍服务器使用密码对用户进行身份验证。它不仅会引发安全问题,而且还会使用户无法使用外部程序访问数据库。因此我们需要将身份验证方法从 auth_socket 更改为使用 mysql_native_password(密码验证)。输入以下命令,打开MySQL控制台。
sudo mysql
-
设置root用户密码。
输入以下命令将MySQL身份验证方式从 auth_socket 更改为使用 mysql_native_password(密码验证)。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '输入root账号的密码'
-
执行以下命令,创建Ghost使用的数据库。
本文以ghost为例。
create database ghost
-
输入以下命令查看数据库创建情况。
show databases
回显信息:
mysql> show databases; +--------------------+ | Database | +--------------------+ | ghost | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)
-
执行以下命令,退出MySQL。
exit
-
避免数据库可能存在的中文乱码问题,可执行以下命令设置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
执行以下命令,重启MySQL生效。
sudo /usr/sbin/service mysql restart
安装Ghost
-
输入以下命令创建Ghost-CLI命令工具,快速配置Ghost。
sudo npm install ghost-cli@latest -g
-
依次执行以下命令,创建Ghost安装目录并进授权。
sudo mkdir -p /var/www/ghost sudo chown test:test /var/www/ghost //配置权限 sudo chmod 775 /var/www/ghost
-
执行以下命令,进入创建的文件夹,安装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。
-
测试访问Ghost博客。
访问Ghost前台首页。
在任何具有访问公网能力的主机中,打开浏览器输入云主机实例的公网IP地址或者域名,即可访问Ghost前台首页。
例如:http://公网IP地址或者域名
如果想要进入管理员后台的话只需要在域名或者公网IP地址的后面加上/ghost即可进入,第一次进入需要进行账号注册,然后便能进入后台。
例如:https://公网IP或者域名/ghost