使用Hexo搭建个人博客
前言
本文主要讲述如何使用Hexo搭建个人博客、配置Hexo插件和主题、以及部署相关。
本地运行
首先需要确保你的电脑有 Node.js 和 Git,如果没有则需要先安装一下
安装Node.js
Node.js 安装包及源码下载地址为:https://nodejs.org/zh-cn/download/

根据不同的系统选择对应的 Node.js 的安装包进行下载,然后直接傻瓜式安装即可
安装Git
Git 安装包下载地址为:https://git-scm.com/download

根据不同的系统选择对应的安装方式进行安装即可
安装Hexo
接下来需要全局安装 Hexo
打开命令行界面,输入以下命令开始安装
1 | npm install hexo-cli -g |
等待安装完成后命令行输入
1 | hexo -v |
显示对应版本号即为安装成功,如下图

建站并本地运行
安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件
1 | hexo init <指定文件夹路径或文件夹名> |
新建完成后,指定文件夹的目录如下:
1 | ├── _config.yml |
在当前文件夹内执行以下命令本地启动
1 | hexo server |
等待命令执行完浏览器访问http://localhost:4000/,显示内容即为运行成功,如下图:

到这里我们就用hexo成功的搭建了最基础的博客,并在本地成功运行了
Hexo主题
以本博客为例,说一下主题的更换
- 在官网的主题页选一个你喜欢的主题,这里我用的是
Icarus

- 点击这个主题的名字跳转到对应的
github仓库,并复制github地址

- 打开博客目录下的
themes目录,在当前目录下打开命令窗口,执行git clone <复制的github地址>命令并等待执行完成

- 打开博客根目录的
_config.yml文件,找到theme配置并修改为你要切换的主题名称
1 | theme: icarus |
- 重启服务,主题切换完成
这是最基础的主题切换,如果有要定制化的修改请在主题源码里自行修改
1 | hexo server |
Hexo插件
本博客用到的插件:
| 插件名 | 功能 |
|---|---|
| hexo-abbrlink | 生成URL短链 |
| hexo-generator-sitemap / hexo-generator-baidu-sitemap | 生成站点地图 |
| hexo-auto-excerpt | 自动摘录 |
| hexo-generator-archive | 生成归档目录 |
| hexo-generator-category | 生成分类目录 |
| hexo-generator-tag | 生成标签目录 |
| gitalk | 评论系统(利用github的issues) |
gitalk配置这块我会单拉出一篇文章说
插件的安装一般为博客文件夹目录打开命令面版并执行以下命令
1 | npm install <插件名> --save |
具体请查看不同插件的文档
部署
博客的部署我这里介绍两种,github托管和自有服务器部署
使用 github 托管的优点是免费,缺点因国内网络问题访问不是很稳定
自有服务器部署的优点是访问稳定,缺点是需要自行购买服务器
github 托管
自有服务器部署
首先需要有一台自己的服务器,如何购买我这里就不说了,参考 https://jeam.org/338f9b1
安装 Nginx
参考 https://www.cnblogs.com/lywJ/p/10710361.html
使用命令一键部署
首先说一下我使用的是 rsync 命令来完成静态文件远程同步的
rsync 可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件
下面讲一下 rsync 的安装及 ssh 的配置
首先要在本地写作的机器和服务器都安装 rsync
1 | # Debian |
安装成功后可以试一下好不好用
1 | rsync <本地传输路径> root@<你的服务器ip>:<需要同步到服务器的路径> |
接着会让你输入服务器的密码,等待传输完成后上服务器看一下是否成功同步
到这里就利用 rsync 完成了博客部署,但是有一个问题就是不能每次都输入一遍服务器密码吧,这样会很麻烦,理想的情况是一个命令就直接完成部署,不需要密码,这里就需要ssh的相关配置
首先在写作的机器上执行命令
1 | ssh-keygen -t rsa -b 2048 -f /root/.ssh/hostkey |
如果没有 .ssh 目录,手动创建一个,此时会在该目录下生成2个文件 hostkey 和 hostkey.pub
将生成的hustkey.pub传输给server,由于此处是要用于身份验证的
1 | scp /root/.ssh/hostkey.pub 192.168.71.98:/.ssh/ |
接着再服务器 /etc/hosts.allow 里添加 sshd:192.168.71.178 ,这样做是为了让客户端可以登陆
在 /.ssh 目录下手动创建 touch authorized_keys、chomd 600 authorized_keys 再将由客户端传过来的 hostkey.pub 导进去 cat hostkey.pub >> authorized_keys
vi /etc/ssh/sshd_config 文件
1 | # |
最后再测试一下
1 | rsync -av -e ssh <本地传输路径> root@<你的服务器ip>:<需要同步到服务器的路径> |
可以把部署相关写到一个 shell 文件里,在当前目录下创建 deploy.sh 文件,复制粘贴下面代码
1 |
|
然后在 package.json 里的 scripts 里添加下面这行
1 | "deploy": "./deploy.sh" |
然后在需要部署的时候直接 npm run deploy 就可以了
最后
有一些功能并不是主题或者插件,比如夜间模式切换功能、页脚显示邮箱等等,这些都是在主题源码的基础上做的更改
如果你喜欢我配置的主题可以直接 fork 我的代码然后做你的修改
博客的 github 地址为:https://github.com/lvboda/blog
如果你有任何问题,可以在下方评论留言
参考资料
使用Hexo搭建个人博客

