丢掉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账户安装,所以首先需要创建一个普通账户。
#user使用自己的账户名称
adduser <user>
这里注意也不要使用ghost
作为用户名,这会导致与Ghost-CLI冲突。
然后我们需要将这个账户添加到superuser用户组,这样我们就可以使用sudo
命令了。
#使用root用户执行以下命令
usermod -aG sudo <user>
#切换到新建的用户
su - <user>
首先确保软件包列表是最新的。
sudo apt-get update
Ghost需要Nginx服务器,并且SSL配置需要Nginx1.9.5或更高版本。
sudo apt-get install nginx
如果你的服务器使用了 ufw
,那么你需要允许HTTP和HTTPS连接,打开防火墙:
sudo ufw allow 'Nginx Full'
数据库官方建议使用MySQL,版本在5.5以上,且不大于8.0 。
sudo apt-get install mysql-server
如果你的服务器运行的是Ubuntu18.04,则需要输入密码确保MySQL与Ghost-CLI
兼容。
#进入mysql
sudo mysql
#修改root用户的密码,这里的password改成你自己要设定的密码
>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
#退出mysql
>quit
#切换回你的管理员用户
su - <user>
#添加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。
sudo npm install ghost-cli@latest -g
安装后可运行ghost help
验证安装。
注意:在
/root
或home/
目录中安装Ghost会导致安装程序损坏,建议使用/var/www/ghost
目录。
创建安装目录,并且设置所有者和读写权限。
#创建安装目录
sudo mkdir -p /var/www/ghost
#更改文件夹所有者
sudo chown <user>:<user> /var/www/ghost
#更改权限
sudo chmod 775 /var/www/ghost
#进入目录
cd /var/www/ghost
前期环境均已配置好,下面开始运行安装命令。
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?
开始运行。