0 写在前面
“玩转Hexo”系列文章主要讲述了如何通过Hexo在自己的服务器上搭建博客,例如我的博客。同时,文章挑选了主题icarus来作为例子,讲述了如何将已有的主题个性化。而且,文章还指出主题中在用到外网资源时会出现的问题以及解决方式。
关于云服务器和域名的购买和备案需要读者自行完成。本教程提供的例子是如何在虚拟机上从零开始搭建一个hexo博客,但方法已具有一般性。实际上,读者在虚拟机上部署Hexo博客和在云服务器上部署Hexo博客是两个identical的过程。唯一不同的可能是文章中的虚拟机用的是Ubuntu,读者的云服务器用的是CentOS(Ubuntu is still OK, it is optional!!)
在搭建Hexo之前,需要声明的是,无论是我的服务器还是虚拟机,我默认登录用户都是root
。这就使得我每次输入一些命令时可以省略sudo
和避免一些由于权限而引发的奇奇怪怪的问题。因此,在本教程中,我也延续了这个习惯。如果读者不知道如何设置默认root登录,可以参考我的这篇文章。
现在让我们开始吧!
1 Hexo概述
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
从上面这段话中我们可以知道,通过Hexo,我们可以直接方便地使用Mardown来写作,而不用担心我们的文章是如何被解析成一个web页面的。这样就使得我们将更多的时间分配在文章的写作中,而不用在文章的具体格式显示上浪费时间。
同时,Hexo只是一个静态博客。也就是说Hexo并不会像淘宝一样可以登录、有控制台什么的。Hexo的功能仅限于显示静态页面,而我们每次在添加文章时都需要手动地加入到Hexo相应的文件夹中,并使用命令生成静态页面。
2 安装Hexo
2.1 环境依赖
Hexo的安装依赖于NodeJS和Git,下面分别安装。如果下面的命令下载慢,读者需要注意是否已经更换了国内源。
首先安装Git。
apt install git-core
执行完毕后输入如下命令查看是否安装成功。
git --version
然后输出git版本号,则表示安装成功。
root@ubuntu:~# git --version
git version 2.7.4
NodeJS的安装稍微有点麻烦,我们先要去到NodeJS的官网,选择下方的Linux Binaries(x64)下载。
这里,我下载的是node-v14.15.1-linux-x64.tar.xz
。然后将其放入到你喜欢的文件夹中,我将其放入到~/env
下。
下载得到的包是已经编译好的程序,可以直接使用。但先要将其解压出来。在目录~/env
下,输入如下命令进行解压,注意修改文件名。
tar -xf node-v14.15.1-linux-x64.tar.xz
输入以下命令验证是否安装成功。
node-v14.15.1-linux-x64/bin/node -v
然后可以看到如下输出。
root@ubuntu:~/env# node-v14.15.1-linux-x64/bin/node -v
v14.15.1
注意到这里的命令太长了,我们常常希望省略可执行程序所在的文件夹名字来调用这个程序。即我们希望直接使用node -v
即可输出上面的结果。此时,我们需要将文件夹node-v14.15.1-linux-x64/bin/
下的命令添加到环境变量即可。我采用的方法是在/usr/local/bin
中创建软链接指向文件夹node-v14.15.1-linux-x64/bin/
的命令,命令如下。
ln -s ~/env/node-v14.15.1-linux-x64/bin/node /usr/local/bin/
ln -s ~/env/node-v14.15.1-linux-x64/bin/npm /usr/local/bin/
ln -s ~/env/node-v14.15.1-linux-x64/bin/npx /usr/local/bin/
上述命令的路径必须使用绝对路径。
输入如下命令测试。
node -v
npm -v
npx -v
然后输出和下面类似的结果。
root@ubuntu:~/env# node -v
v14.15.1
root@ubuntu:~/env# npm -v
6.14.8
root@ubuntu:~/env# npx -v
6.14.8
这样,读者就可以缺省可执行程序的文件夹执行程序了。
2.2 安装Hexo
在上面的环境依赖安装成功后,读者就可以使用nodeJS中的npm来对Hexo需要的包进行管理了。在此之前,由于npm默认是国外源,这里同样需要换成国内源,我更换的是淘宝的源,命令如下。
npm config set registry http://registry.npm.taobao.org
然后使用npm下载Hexo。
npm install -g hexo-cli
得到如下结果。
root@ubuntu:~/env# npm install -g hexo-cli
/root/env/node-v14.15.1-linux-x64/bin/hexo -> /root/env/node-v14.15.1-linux-x64/lib/node_modules/hexo-cli/bin/hexo
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/hexo-cli/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hexo-cli@4.2.0
added 63 packages from 334 contributors in 6.283s
众所周知,Error才是错误,Warning啥也不是。上面的结果可认为安装成功。Hexo博客的管理统一使用命令hexo
。为了使用方便,我们也需要将其加入到/usr/local/bin
中。
ln -s ~/env/node-v14.15.1-linux-x64/bin/hexo /usr/local/bin/
3 使用Hexo搭建博客
首先选择一个你喜欢的文件夹作为博客的文件夹。Hexo会将博客的所有静态页面、md文件和主题等都放在这个文件夹中。注意,这个文件夹必须是空文件夹。因此,在搭建博客之间,这个文件夹最好是通过mkdir
刚刚创建的。
我选择在~/
下创建文件夹blog
,命令如下。
mkdir ~/blog
在~/blog
文件夹下,执行如下命令创建Hexo博客。
hexo init .
执行完之后可以看到博客文件夹下多了几个文件,其中包括博客的配置文件、博客的主题和博客文章的模板等。
root@ubuntu:~/blog# ls
_config.yml node_modules package.json scaffolds source themes
然后执行如下命令安装博客,博客的主题在themes
中,默认为landscape
。
npm install
如果此时会报错,则需要先执行下面的命令,然后再执行命令npm install
。
npm config set user 0
npm config set unsafe-perm true
然后启动博客。
hexo s
然后输出如下结果。
root@ubuntu:~/blog# hexo s
INFO Validating config
INFO Start processing
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
注意,这个控制台不可关闭。
然后虚拟机的浏览器中输入http://localhost:4000
即可看到博客。
4 未完待续
在这篇文章中我们还没有解决如下问题
- 成功搭建了博客之后如何进行写作呢?
~/env/blog
文件夹下的各个文件有什么作用呢?- 如何对博客进行个性化配置?
这些问题将在下一篇文章中揭晓。如果读者有兴趣,可以先行摸索。