开始之前
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页(hexo官网文档)。
GitHub是世界上最大的代码托管平台,它也提供了GitHub Pages服务来帮助我们架设一个静态网站,这样我们就不用在单独租借一台服务器来搭建博客了。
GitHub Pages允许每个用户创建一个”yourname”.github.io的存储库,会自动为这个存储库分配一个github.io的二级域名。当然,如果你想使用自定义域名,也是可以的。
准备工作
安装Git
进入Git官网,点击Download 2.25.0 for Windows下载Git,安装的时候一路next就行了。
安装node.js
进入node.js官网,选择一个版本下载(这两个版本都可以,只是旧的比较稳定),安装的时候也是一直next就可以了(记住安装的目录,等会会用到)。
安装完成后,打开CMD,cd到刚才安装node.js的目录,输入node -v然后回车,如果出现版本号,就说明安装成功了。
开始部署
部署到本地
由于我已经搭建好了,下面的教程都是使用win10自带的沙盒(Sandbox)进行演示。
打开我的电脑,随便在哪个盘符下面右键,选择Git bash,打开Git命令窗口。
在命令窗口输入npm install -g hexo-cli,安装有点慢,耐心等一下,出现下面的界面就说明安装成功了(安装hexo@3.1.0成功,耗时54.938秒)。
输入hexo init name (name这里换成你想新建的文件夹名字 我以blog为例),新建一个存放博客文件的目录并初始化,时间有点久,稍微等一下。
初始化完成之后,文件夹里面应该会有这几个文件,如果没有的话就说明初始化失败了。
cd到刚才新建的文件夹目录,输入命令npm install并回车,会报警告,不用管。出现found 0 vulnerabilities就说明没问题。
输入hexo clean && hexo g && hexo s并回车,弹出防火墙警告选择允许访问。
打开浏览器,在地址栏输入http://localhost:4000并回车即可访问hexo在本地部署好的网页文件。
只要能正常访问,就说明hexo在本地已经搭建好了,下一步我们借用GitHub Pages把hexo放到网上去,让更多人访问。
部署到GitHub
打开Github官网(没有账号的先注册登录一下),点击Create repository新建一个存储库。
这个存储库名称必须为yourname.github.io(yourneme是你的用户名),我的用户名是xiaoxiaoxin那么我的存储库名字就是xiaoxiaoxin.github.io,勾选public公开这个存储库,并在下面的方框打勾,然后点击Create repository创建。
创建完成后点击Settings打开设置,找到GitHub Pages,确认你的界面和下图的一样,如果不一样就在source下面选择master。

在浏览器地址栏输入你的存储库名字并回车,如果网页上出现了你的存储库名字,就说明GitHub Pages已经生效了,可以继续下一步。
链接GitHub和git
打开你博客在本地的目录,右键单击选择Git bash
输入git config --global user.name "你的用户名"并回车,我的用户名是xiaoxiaoxin那么我就输入git config --global user.name "xiaoxiaoxin"
再输入git config --global user.email "你的注册邮箱"并回车,我的注册邮箱是2775714150@qq.com那么我就输入git config --global user.email "2775714150@qq.com"
1 | git config --global user.name "你的用户名" #验证用户名 |
输入ssh-keygen -t rsa -C "你的注册邮箱"并回车 生成一个密钥文件,我的注册邮箱是2775714150@qq.com那么我就输入ssh-keygen -t rsa -C "2775714150@qq.com"(注意:这里的C为大写)。回车之后再连跟三个回车,红框那里表示密钥文件所在的目录。
打开密钥文件所在的目录,用记事本打开id_rsa.pub这个文件,然后全选所有内容并复制。
回到GitHub点击Setting,找到Deploy keys,点击右上角的Add Deploy keys添加密钥。
Title这个名称随便写,留空也可以。下面的key文本框里面填入你的密钥,勾选下面的Allow write access,然后点击Add key添加。
回到Git bash,输入ssh git@github.com并回车,可能会要你输入yes或者no,输入yse,出现You've successfully authenticated就代表成功了。
打开你hexo的本地文件夹,找到_config.yml这个文件,用记事本打开,在文本最后面修改
1 | deploy: |
冒号必须为小写,而且后面必须跟空格,修改之后记得保存了再关闭
安装Git部署插件,这个插件会把hexo生成的静态网页推到GitHub上面去,在Git bash中输入下面的命令
1 | npm install hexo-deployer-git --save |
安装完成过后接着输入下面的命令,可能会弹出窗口来要你登录,输入账号密码登录就行了。出现INFO Deploy done: git就说明推送成功。
1 | hexo clean && hexo g && hexo d |
打开你的浏览器,在地址栏输你GitHub存储库的名字,然后回车。不出意外的话,已经可以访问到你的博客了。

Hexo常用命令
1 | hexo clean #清除生成的静态网页文件 |
Hexo部署到GitHub就完成了,Hexo默认的主题啊还是挺不好看的emmmm,关于修改站点配置和主题呢在度娘和Google上面都有教程,只有你有时间有耐心,做出来一个精致的博客还是挺容易的。
部署到个人服务器
众所周知啊,GitHub在国外的访问速度很快但是在国内的访问速度是很慢的,并且时不时还会抽风,为了使我们博客在国内的访问速度也能快一点,我们可以把Hexo同时部署到国内的个人服务器上,加快国内访问速度。
首先通过
SSH登录到你的服务器,推荐使用Xshell。服务器上安装Git
1
yum install -y git
创建Git用户并切换
1
2
3useradd git #新建一个Git用户
passwd git #创建密码
su git #切换到Git用户
配置仓库
1
2
3
4
5
6cd /home/git/ #回到git的首目录
mkdir -p hexo/blog #项目所在的目录
cd hexo
git init --bare blogn.git #创建一个仓库
cd blogn.git/hooks
vim post-receive #创建hook钩子函数,输入下面的内容1
2#!/bin/sh
git --work-tree=/home/git/hexo/blog --git-dir=/home/git/hexo/blogn.git checkout -fvim编辑器不会用的点这里
添加完成后修改权限
1
2
3chmod +x post-receive
exit #退出到root登录
chown -R git:git /home/git/hexo/blogn.git #给git用户添加权限测试
git仓库是否可用,找一个空白文件夹。1
git clone git@your_ip:/home/git/hexo/blogn.git #"your_ip"这里输入你服务器的IP地址
会要你输入密码,输入你
git用户的密码,如果能拉下来一个.git的文件夹(记得打开显示隐藏文件),就说明成功了。
通过密钥建立
ssh信任关系,用刚才绑定GitHub的密钥就可以了。在本地博客目录里面打开Git bash输入下面的命令。1
2
3ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@your_ip # "yourname"输入你电脑本地的用户名,不知道的打开目录看一下。"your_ip"输入你服务器的IP地址
ssh git@your_ip # 测试能否登录
此时
ssh登录git账户应该时不要密码的,如果需要密码,那么请重复4-6步。
安装Nginx
安装之前我们先安装Centos系统的各种依赖包,避免等会安装的时候报错。
1 | yum -y install gcc #安装gcc(c)编译器 |
下载并安装
nginx1
2
3
4
5
6
7
8cd /usr/local/src
wget http://nginx.org/download/nginx-1.15.2.tar.gz
tar xzvf nginx-1.15.2.tar.gz
cd nginx-1.15.2
./configure #如果后面还想要配置 SSL 协议,就执行后面一句!
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
make && make install
alias nginx='/usr/local/nginx/sbin/nginx' #为 nginx 取别名,后面可直接用如果执行
make && make install报错No rule to make target build', needed by default'. Stop.那就说明之前的依赖包没装,请安装后重试。修改
nginx配置文件
先启动看看是否安装成功,输入nginx回车,刚才已经取别名了,现在输入nginx就可以直接调用。1
nginx #浏览器地址栏输入你服务器的ip地址 默认端口为80 记得放行端口
出现
Welcome to nginx!就代表安装成功了。
修改配置文件
1
2
3
4
5
6nginx -s stop // 先停止nginx
cd /usr/local/nginx/conf
vi nginx.conf
修改 root 解析路径,改为blog文件所在的目录,如下图
同时将 user 改为 root 如下图,不然nginx无法访问 /home/git/hexo/blog
nginx -s reload #重启nginx
修改站点配置文件
打开博客本地目录里面的
_config.yml文件,拉到最下面,修改deploy。
照着下面写就行了,如果你没有部署到GitHub,那么github那一行你不用写。1
2
3
4
5
6deploy:
type: git
repo:
github: https://github.com/xiaoxiaoxin/xiaoxiaoxin.github.io.git #如果有部署到github上面,这里一定要换成你自己的用户名
txyun: git@yourname:/home/git/hexo/blogn.git #yourname这里写入你自己的服务器ip地址 假如我的IP地址是1.1.1.1 那么我就写 git@1.1.1.1:/home/git/hexo/blogn.git
branch: master推送到云平台
在本地博客目录下,单击右键打开
Git bash,输入hexo clean && hexo g && hexo d,可以看到,hexo往Github和我们的云服务器都推送了网页文件。
在浏览器地址栏输入你的ip地址并回车,应该就可以访问你的博客了。
最后
到现在呢,我们已经成功了搭建好了一个基于Hexo的个人博客,并且双线部署到了我们的GitHub和云服务器上。
关于自定义域名访问以及后续的主题美化,度娘和Google上面都有很多教程,绝大部分的坑都已经有人填过了。
本文部分教程转载自掘金 lawler61,感谢大佬。
