丢掉Hexo,舍弃Wordpress,最终我选择了Ghost。

前言

前段时间,先是舍弃了Hexo转战Wordpress,主要原因是Hexo多终端编写Blog比较麻烦,需要经常同步本地文件,另外Hexo没有后台,很多时候不是那么方便,但是Hexo的确是我用过最有利于“专注写作”的框架,但是没有办法,用户体验让我不得不舍弃掉他。

后来我又使用了Wordpress,优点十分明显:有后台、有在线编辑器、一键换主题、可定制主题、大量插件等等,这些是他的优点,但Wordpress却忽略了最重要的一个环节:编辑器。Wordpress:5.0以后内置的Gutenberg编辑器对于Markdown用户来说是真的难用。

之后我在网上四处冲浪,观察大家都在使用哪些框架建站,后来我发现了这个基于Node.js开发的Blog框架—Ghost。

环境准备

官方给出的文档建议使用如下环境:

  • Ubuntu 16.04 or Ubuntu 18.04
  • NGINX (minimum of 1.9.5 for SSL)
  • A supported version of Node.js
  • MySQL 5.5, 5.6, or 5.7 (not >= 8.0)
  • Systemd
  • A server with at least 1GB memory
  • A registered domain name

总的来说就是就是需要Nginx、MySQL、Node.js这三个东西,另外你需要一台至少1GB内存的服务器以及一个注册的域名。

创建用户

因为Ghost不允许使用root账户安装,所以首先需要创建一个普通账户。

1
2
#user使用自己的账户名称
adduser <user>

这里注意也不要使用ghost作为用户名,这会导致与Ghost-CLI冲突。

然后我们需要将这个账户添加到superuser用户组,这样我们就可以使用sudo命令了。

1
2
3
4
5
#使用root用户执行以下命令
usermod -aG sudo <user>

#切换到新建的用户
su - <user>

安装Nginx

首先确保软件包列表是最新的。

1
sudo apt-get update

Ghost需要Nginx服务器,并且SSL配置需要Nginx1.9.5或更高版本。

1
sudo apt-get install nginx

如果你的服务器使用了 ufw,那么你需要允许HTTP和HTTPS连接,打开防火墙:

1
sudo ufw allow 'Nginx Full'

安装MySQL

数据库官方建议使用MySQL,版本在5.5以上,且不大于8.0 。

1
sudo apt-get install mysql-server

Ubuntu18.04上的MySQL

如果你的服务器运行的是Ubuntu18.04,则需要输入密码确保MySQL与Ghost-CLI兼容。

1
2
3
4
5
6
7
8
9
10
11
#进入mysql
sudo mysql

#修改root用户的密码,这里的password改成你自己要设定的密码
>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

#退出mysql
>quit

#切换回你的管理员用户
su - <user>

安装Node.js

image-20191105145226721

官方建议使用10.x的 LTS版本。

1
2
3
4
5
#添加Node10到APT仓库
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash

#安装Node.js
sudo apt-get install -y node.js

安装Ghost-CLI

Ghost-CLI是一个命令行工具,可以快速安装、配置Ghost。

1
sudo npm install ghost-cli@latest -g

安装后可运行ghost help验证安装。

安装Ghost

注意:在/roothome/目录中安装Ghost会导致安装程序损坏,建议使用/var/www/ghost目录。

创建目录

创建安装目录,并且设置所有者和读写权限。

1
2
3
4
5
6
7
8
9
10
11
#创建安装目录
sudo mkdir -p /var/www/ghost

#更改文件夹所有者
sudo chown <user>:<user> /var/www/ghost

#更改权限
sudo chmod 775 /var/www/ghost

#进入目录
cd /var/www/ghost

开始安装

前期环境均已配置好,下面开始运行安装命令。

1
ghost install

安装问题

安装过程中Ghost-CLI会提示配置一些选项。

Blog URL

输入指向该服务器的域名,如https://giottolee.com,官方文档说这里如果不使用域名直接使用IP地址会导致一些错误,但是我试着配了一下,也没有报错。尽管如此还是建议买一个域名,毕竟直接暴露IP地址还是有危险的。

MySQL hostname

配置数据库来源,如果你的数据库是在本地配置,就直接Enter使用默认本地配置。如果你的数据安装在另一台服务器,就输入服务器名字。

MySQL username/ password

输入数据库的用户名和密码。

Ghost database name

如果你的数据库使用的是root用户,则Ghost-CLI会自动创建一个数据库。如果你使用的非root用户,你需要手动创建一个数据库,并且配置好权限,然后在这输入数据库的名字。

Set up a ghost MySQL user? (Recommended)

如果你的数据库用户使用的是root用户,Ghost-CLI会为Ghost创建一个新的数据库用户,这个用户只能读写Ghost数据库。

Set up NGINX? (Recommended)

自动配置Nginx,想都不想直接Enter。

Set up SSL? (Recommended)

直接Enter吧。

Enter your email

输入你的邮箱地址,用来配置SSL。

Set up systemd? (Recommended)

使用ghost进程管理工具,推荐y

Start Ghost?

开始运行。

接下来你就可以通过你的域名访问你的Ghost初始页面了。

image-20191105160427922