虽然感觉有点坑,但是终于东搜西搜弄好了自己的 hexo(这里要吐槽一下官方文档是真的简洁),那么第一篇 post 就来记录一下建站的过程吧(好吧我 WP 上的文章会尽快迁移过来的)

为什么选择 hexo?

首先很大部分还是为了主题(漂亮才是关键)….虽然说本来的 WP 主题也还不错,但是看到了这个“大道至简”的主题是真的被打动了,于是就生起了搭 hexo 的小心思。另外,WP 和 hexo 的主题库风格对比是真的明显,花里胡哨和小清新的强烈对比(当然也有用途不同的原因了,WP 的用处更多一点)。对了,说起主题,我当初就是看 tomotoes 这个 blog 动心的,甚至一度让我有手写自己的主题的强烈意愿,当然因为没有设计师而打消了这个念头(所以有没有设计可以帮我设计一套主题啊 😫😫)

其次,hexo 是静态博客,非常轻量(当然在你不插入大量图片或者 Live2D 的情况下),对于一个菜鸡的个人 blog 来说 WP 的很多功能根本就用不到,而在 hexo,加个 valine 的评论系统就足够用了,也算是可以避免(暂时不存在的)一些安全问题?总的来说,部署完之后享受到了秒开的感觉真的不错 23333

最后,hexo 是用 markdown 写作的喂!!!!!!说到 markdown 我们就想起了 Typora,体验真的太好了!!!!WP 那个垃圾编辑器根本不能比(就算是我找的 Elementor 之类的扩展编辑器也不能比,可能它们的优势在于不同的布局吧,但是这也是我用不上的)。另外,WP 的代码高亮插件是真的捉鸡,虽然这主题的默认 highlight 也有点不是很好看,但是我研究了一下,还是可以直接对着 highlight.js 的 css 直接改成 atom-one-dark 的。总的来说,hexo 的写作方式对于我这种只写个人生活和 Coding 的已经足够了,嗯,而且再次用回 Typora 写 markdown 真的舒服!

这里我就不写本地hexo怎么配置、主题这些东西了,官网和百度都说得挺详细

服务器的准备工作

因为在Github上配置比较简单,而且我觉得还是放在自己服务器比较好(不然服务器就真的晾着了),所以就讲讲怎么在自己的服务器上部署吧

首先我们需要:git,新建git用户,本地电脑也需要git并生成ssh key:

1
2
3
# git bash(local)
$ ssh-keygen
#这里生成的key在C:/Users/XXXX/.ssh下

为了能让git的ssh和ubuntu的分开,我们在/home下新建git文件夹,并建好ssh相关文件

1
2
3
4
5
6
7
8
cd /home
mkdir git
cd git
mkdir git-shell-commands #这里要建立这个文件夹git shell才能正常工作
mkdir .ssh
cd .ssh
vim authorized_keys
#加上你的本地git生成的public key

这里有一些限制git shell权限的操作,我直接从这里copy一下了:

1
2
3
4
5
6
7
cat /etc/shells   #查看`git-shell`是否在登录方式里面,有则跳过
which git-shell #查看是否安装
vim /etc/shells
#添加上2步显示出来的路劲,通常在 /usr/bin/git-shell
vim /etc/passwd
#把 git:x:1000:1000::/home/git:/bin/bash
#修改为 git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell

然后在某个地方创建一个仓库(不是网站根目录就好了),我们使用git hook同步到网站艮目录,这里我选择/home/git吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#这里我全程用root操作的
cd /home/git
mkdir repos && cd repos
git init --bare blog.git #创建一个裸露的空仓库
cd blog.git/hooks
vim post-receive #创建hook钩子函数
#输入如下内容:
# #!/bin/sh
# git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f

# work-tree后面是你的网站根目录
#退出,用下面命令修改权限
chmod +x post-receive
chown -R git:git /home/git/repos/blog.git #添加权限

接下来我们尝试下在本地把空仓库拉下来(用ip不要用域名),如果能拉下来,就说明成功了

Deploy到服务器

在本地,我们要先安装插件hexo-deployer-git,然后配置_config.yml

1
2
3
4
5
deploy:
- type: git
- repo: git@server_ip:/home/git/repos/blog.git
- branch: published #我是直接master的好像也没什么影响2333
- message: #自选

然后在本地写好,执行hexo clean && hexo g -d就可以推送到服务器啦~~(之前没有生成的话可以去掉hexo clean

如果推送不成功,可以先检查一下有没有生成 .deploy_git 文件夹或者手动删除它和public文件夹,其他情况只能一个个排查啦~~

写了半天终于写完了,休养生息的日子里也把博客迁移了,就当是自己新的出发点吧,嗯~ o( ̄▽ ̄)o