使用hexo+github搭建属于自己的博客

一、注册GitHub账号(已经有GitHub账号的请忽略这一步)

先在Github注册一个账号:https://github.com/

新建项目,项目必须要遵守格式:账户名.github.io,不然接下来会有很多麻烦。并且需要勾选Initialize this repository with a README

在建好的项目右侧有个settings按钮,点击它,向下拉到GitHub Pages,你会看到那边有个网址,访问它,你将会发现该项目已经被部署到网络上,能够通过外网来访问它。

二、环境搭建

下载Node.js安装文件

现在电脑基本都是64位的,我就放64位的下载地址:https://nodejs.org/dist/v8.9.4/node-v8.9.4-x64.msi

或者自行到官网下载最新版本: https://nodejs.org

安装Git:

Git下载包(64位) Git下载包(32位)

完成之后到桌面空白处单击鼠标右键,选择Git Bash Here进入bash窗口输入命令 node -vnpm -v 验证安装是否成功,成功界面如下

三、Hexo安装

Hexo简介

Hexo是什么呢?也许引用Hexo官方文档里面的说明是再好不过了:

1
Hexo is a fast, simple and powerful blog framework. You write posts in Markdown (or other languages) and Hexo generates static files with a beautiful theme in seconds.

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

安装Git

下载地址:https://git-scm.com/download,按照默认傻瓜式安装就好了

补充一句,如果你已经安装了Git,你可以通过Git本身获得最新的开发版本:

1
$ git clone https://github.com/git/git

完成之后到桌面空白处单击鼠标右键,如果有出现Git Bash Here选项则证明已经安装成功

下载Hexo

在桌面空白处单击鼠标右键,选择Git Bash Here进入bash窗口,在自己认为合适的地方创个文件夹,我是在D盘建了一个blog文件夹。然后通过命令行进入到该文件夹里面

再输入命令 npm install -g hexo 下载Hexo

1
$ npm install -g hexo

等待完成之后,输入命令 hexo -v 验证安装是否成功

初始化

输入hexo init,初始化该文件夹

输入npm install,安装所需要的组件

输入hexo g,首次体验Hexo

输入hexo s,开启服务器,访问该网址,正式体验Hexo

问题:假如页面一直无法跳转,那么可能4000端口被占用了。此时我们ctrl+c停止服务器,接着输入hexo server -p 端口号来改变端口号

那么出现如下图就成功了

四、将Hexo与Github page联系起来

安装插件

打开git bash,进入hexo根文件夹,输入npm install hexo-deployer-git --save 命令安装插件

配置SSH

设置全局配置user.name 和user.email(如果是第一次的话)

1
2
git config –-global user.name “shuaibi”  //(“”的账号是刚才Github里面自己注册的账号) 
git config –-global user.email “okjbk.gmail.com//(""的邮箱是你自己注册的邮箱)

输入cd ~/.ssh,检查是否有.ssh的文件夹

输入ssh-keygen -t rsa -C "ojbk.gmail.com"(""中间写你直接设置的邮箱),连续三个回车,生成密钥,最后得到了两个文件:id_rsa和id_rsa.pub(默认存储路径是:C:\Users\Administrator.ssh)。

输入eval "$(ssh-agent -s)",添加密钥到ssh-agent

再输入ssh-add ~/.ssh/id_rsa,添加生成的SSH key到ssh-agent

登录Github,点击头像下的settings,添加ssh

新建一个new ssh key,将id_rsa.pub文件里的内容复制上去

回到git bash 输入ssh -T git@github.com,测试添加ssh是否成功。如果看到Hi后面是你的用户名,就说明成功了

问题: 假如ssh-key配置失败,那么只要以下步骤就能完全解决

首先,清除所有的key-pair
ssh-add -D
rm -r ~/.ssh
删除你在github中的public-key

重新生成ssh密钥对
ssh-keygen -t rsa -C “xxx@xxx.com

接下来正常操作
在github上添加公钥public-key:
1、首先在你的终端运行 xclip -sel c ~/.ssh/id_rsa.pub将公钥内容复制到剪切板
2、在github上添加公钥时,直接复制即可
3、保存

测试:

在终端 ssh -T git@github.com

配置

配置Deployment,在根文件夹中,找到_config.yml文件,修改repo值(在末尾)

1
2
3
4
deploy:
type: git
repository: git@github.com:RobotNo42/RobotNo42.github.io.git
branch: master

repo值是你在github项目里的ssh(右下角)

部署

用git bash部署hexo到github

hexo server 或者 hexo s

hexo generate 或者 hexo g

hexo deploy 或者 hexo d

看到这样的进程,代表成功部署hexo到github

等待10分钟左右,打开用户名.github.io,会出现如下界面(代表成功搭建博客):

五、绑定自己域名

申请域名

自己去阿里云或者腾讯云等网站购买域名

解析域名

添加如下的解析
得到域名之后,到控制台进行解析
控制台->域名->域名列表->解析

在腾讯云控制台,设置主机记录www,记录类型为A,记录值是IP185.199.111.153。其中185.199.111.153是Github Pages服务器指定的IP地址,访问该IP地址即表示访问Github Pages。

在阿里云控制台,设置主机记录@,记录类型为CNAME,记录值是robotno42.github.io。表示将http://messilessblog.com这个主域名映射robotno42.github.io

如何知道知道的 Github Pages IP
命令提示符中输入ping -4 robotno42.github.io

配置

  • 博客source文件夹下建立一个CNAME的文件
  • 内容写入你的域名信息,比如我这里是messilessblog.com

打开博客下的_config.yml文件

1
2
3
4
5
6
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://messilessblog.com
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

将url后面改成自己的域名地址,注意!不这样做每次提交github那边都要重新设置自定义域名

Github 设置

进入博客->点击Setting,找到 Custom domain 添加域名后保存即可