Gitee/Github/个人域名搭建 博客网站

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。可以配合gitee/github/个人域名 搭建博客网站。

Hexo 安装使用

安装

安装前提

需要先安装下列应用程序:

  • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
  • Git

安装 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

1
$ npm install -g hexo-cli

详细信息参考官方文档安装

创建博客

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

1
2
3
$ hexo init <folder>
$ cd <folder>
$ npm install

hexo创建的folder 即为博客文件夹

创建完成之后进行hexo创建的指定文件夹,依次运行以下命令测试是否安装成功

1
2
3
hexo clean      #清除缓存
hexo g #生成静态网页
hexo s #启动本地服务

本地访问 http://localhost:4000 ,能访问成功及表示安装成功

详细信息参考官方文档建站

配置

常用配置

hexo的配置文件是博客文件夹下的_config.yml文件

详细信息参考官方文档配置

主题配置

hexo可以使用很多主题,更换主题也很方便,只需修改_config.yml文件下的theme属性即可。

我使用的主题是ayer,该主题的GitHub页面详细的配置教程,其他主题的配置教程类似,可以在官方主题下查看更多的主题,总有一款适合你。

主题的配置文件一般是 博客目录/themes/主题目录 下的 _config.yml 文件,注意与站点不是同一个配置文件

书写博客

创建一篇新文章

1
$ hexo new "MyNewPost"

更多信息参考: Writing

hexo会在 博客目录/source/_posts文件加下生成 MyNewPost.md的文件,文件内容示例如下

1
2
3
4
5
---
title: MyNewPost
date: 2020-12-19 23:09:42
tags:
---

title 为该文章的标题,默认是文件名,可以改成当前文章的要展示的标题
date 为文章日期
tags 为文章标签

博客内容示例

1
2
3
4
5
6
7
8
9
---
title: 我的第一篇博客
date: 2020-12-19 23:09:42
tags:
- blog
---
我的第一篇博客
<!--more-->
博客具体内容

title 修改为博客的标题,tags 下添加文章标签,格式如示例所示,多个标签添加多行即可,<!--more--> 之后的内容点击阅读更多可以看到,之前的内容会展示在文章列表里

接下来使用Markdown语法尽情下书写你的博客吧。

本地访问

书写完成后,运行如下命令,即可在本地访问

1
2
3
hexo clean      #清除缓存
hexo g #生成静态网页
hexo s #启动本地服务

本地访问 http://localhost:4000 ,查看书写完成的博客

Hexo 一些常用命令

本地运行服务

1
$ hexo server

可以简写为hexo s

更多信息参考: Server

生成静态文件

1
$ hexo generate

可简写为hexo g

更多信息参考: Generating

远程部署

1
$ hexo deploy

可简写为hexo d

更多信息参考: Deployment

Hexo部署

hexo的部署流程十分简单,安装hexo git插件后在github/gitee/个人域名对应的服务器建立仓库,再在项目目录命令行部署即可。

先安装hexo git插件

1
npm install hexo-deployer-git --save

gitee

在gitee上创建一个仓库,将仓库地址填写到hexo配置文件_config.yml的对应配置中,如下所示

1
2
3
4
5
# Deployment
deploy:
type: git
repo: git@gitee.com:xxx.git # gitee地址
branch: master

使用hexo deploy命令部署到gitee仓库

该仓库需要开通使用Gitee Pages服务,位于该仓库的服务菜单下

使用gitee部署博客虽然访问速度快,但是有一个缺点,就是gitee不能自动更新,每次更新博客都要手动去点击Gitee Pages的更新按钮,挺麻烦的,如果要实现自动更新,需要购买Gitee Pages Pro服务

github

参考官方文档将 Hexo 部署到 GitHub Pages

github 部署博客可实现自动更新,但是访问速度,你懂的

个人域名

这个就比较麻烦了,首先你要满足以下两个条件

  1. 有自己的域名,可以在阿里云或者腾讯云进行注册
  2. 有自己的服务器,配置域名解析至该服务器(如果是国内的服务器,还需要备案,备案流程贼麻烦)

满足了以上两个条件后接下来就好办了
Hexo 部署到自己的 服务器 上面,主要使用 git hooks 来实现自动化部署。

配置步骤

1、安装 git

1
sudo apt-get install git

创建一个 git 用户,用来运行 git 服务:

1
sudo adduser git

2、创建证书登录

把自己电脑的公钥,也就是 ~/.ssh/id_rsa.pub 文件里的内容添加到服务器的 /home/git/.ssh/authorized_keys 文件中,添加公钥之后可以避免每次 push 都输入密码。

3、初始化 Git 仓库

可以将其放在 /var/repo/blog.git 目录下

1
2
3
$ sudo mkdir /var/repo
$ cd /var/repo
$ sudo git init --bare blog.git

使用 –bare 参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。

4、配置 git hooks

这里要使用的是 post-receive 的 hook,这个 hook 会在整个 git 操作过程完结以后被运行。

blog.git/hooks 目录下新建一个 post-receive 文件:

1
2
$ cd /var/repo/blog.git/hooks
$ vim post-receive

post-receive 文件中写入如下内容:

1
2
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

注意,/var/www/hexo 要换成你自己的部署目录,一般可能都是 /var/www/html。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。

不要忘记设置这个文件的可执行权限:

1
chmod +x post-receive

改变 blog.git 目录的拥有者为 git 用户:

1
$ sudo chown -R git:git blog.git

5、禁用 git 用户的 shell 登录权限。

出于安全考虑,我们要让 git 用户不能通过 shell 登录。可以编辑 /etc/passwd 来实现,在 /etc/passwd 中找到类似下面的一行:

1
git:x:1001:1001:,,,:/home/git:/bin/bash

将其改为:

1
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样 git 用户可以通过 ssh 正常使用 git,但是无法登录 sehll。

至此,服务器端的配置就完成了。

6、本地配置

配置你的 hexo 博客可以自动 deploy 到服务器上,再也不用 ftp 上传了。

修改 hexo 目录下的_config.yml 文件,找到 [deploy] 条目,并修改为:

1
2
3
4
deploy:
type: git
repo: git@xxx.com:/var/repo/blog.git # 你的服务器git地址
branch: master

要注意切换成你自己的服务器地址,以及服务器端 git 仓库的目录。

至此,hexo 自动部署已经全部配置好了。

发新博客的步骤:

1
2
$ hexo new "new-post"
$ hexo clean && hexo generate --deploy

参考

使用 Git Hook 自动部署 Hexo 到个人 VPS
阿里云VPS搭建自己的的Hexo博客

打赏

请我喝杯咖啡吧~

支付宝
微信