基于Ghost框架搭建Blog
丢掉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 | #user使用自己的账户名称 |
这里注意也不要使用ghost
作为用户名,这会导致与Ghost-CLI冲突。
然后我们需要将这个账户添加到superuser用户组,这样我们就可以使用sudo
命令了。
1 | #使用root用户执行以下命令 |
安装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 | #进入mysql |
安装Node.js
官方建议使用10.x
的 LTS版本。
1 | #添加Node10到APT仓库 |
安装Ghost-CLI
Ghost-CLI
是一个命令行工具,可以快速安装、配置Ghost。
1 | sudo npm install ghost-cli@latest -g |
安装后可运行ghost help
验证安装。
安装Ghost
注意:在
/root
或home/
目录中安装Ghost会导致安装程序损坏,建议使用/var/www/ghost
目录。
创建目录
创建安装目录,并且设置所有者和读写权限。
1 | #创建安装目录 |
开始安装
前期环境均已配置好,下面开始运行安装命令。
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初始页面了。