之前的云服务器没了,太贵了续费不起。github搭建hexo博客是不需要花钱的,以免以后忘记这个白嫖的方法(白嫖不爽吗?),详细记录下来。

用GitHub搭建博客的好处

  • 全是静态文件,访问速度快
  • 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台
  • 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的
  • 数据绝对安全,基于github的版本管理,想恢复到哪个历史版本都行
  • 博客内容可以轻松打包、转移、发布到其它平台

准备工作

  • 有一个github账号
  • 安装了node.js、npm,git for windows并了解相关基础知识;

搭建Github博客

创建仓库

  • 新建一个名为你的用户名.github.io的仓库,比如说,如果你的github用户名是test,那么你就新建test.github.io的仓库必须是你的用户名,其它名称无效),将来你的网站访问地址就是http://test.github.io 了,每一个github账户最多只能创建一个这样可以直接使用域名访问的仓库。
  • 注册的邮箱要验证,仓库的名字必须是:username.github.io,其中username就是你github的用户名,创建完仓库不一定立马成功,有时需要等待一下。


配置SSH Key

  • SSH Key 用于本地与GitHub的连接。
  • 在CMD或者用 git bash here 运行代码:ssh-keygen -t rsa -C "邮件地址"然后连续3次回车,最终会生成一个文件在用户目录下,打开C盘的用户目录,找到.ssh\id_rsa.pub文件,记事本打开并复制里面的内容,打开你的github主页,进入个人设置 -> SSH and GPG keys -> New SSH key:将复制内容粘贴到key里面(Title 随便填写)



  • 测试SSH Key是否配置成功

    ssh -T git@github.com # 注意邮箱地址不用改

    如果提示Are you sure you want to continue connecting (yes/no)?,输入yes,然后会看到:

    Hi liuxianan! You’ve successfully authenticated,

    but GitHub does not provide shell access.

    看到这个说明配置成功,然后你还需要配置:
    git config --global user.name "liuxianan"// 你的github用户名,非昵称
    git config --global user.email "xxx@qq.com"// 填写你的github注册邮箱

    hexo的安装

  • 安装
    npm install -g hexo

  • 在需要保存博客的文件夹里git bash here运行下面代码,将hexo的文件保存在里面。会在本地文件夹生成下图的文件。
    hexo init

hexo部署到github上

  • 清除缓存 (进入本地博客目录)
    1
    hello clean
  • 生成静态页面
    1
    hexo generate
    可以简写成:hexo g
  • 将本地静态页面目录部署到云服务器
    1
    hexo deploy
    可以简写成:hexo g

个人绑定域名

不绑定域名,直接用xxx.github.io访问也是可以的。如果你想更加有个性(装逼),就请看这部分内容,不需要个性的可以直接跳过

  • 注册域名
    首先你得注册域名。域名注册可以自行百度,本人在阿里云注册的,价格不贵(第一年),不过国内的域名备案很麻烦。
  • GitHub仓库的设置
    我们希望在访问这个域名时能自动进入 Github Pages,进而访问我们的博客。所以我们要在万网建立一个CNAME纪录(将域名指向另一个域名)来帮我们做一个域名跳转,其实就是个重定向的过程。由于 Github Pages ,只允许最多一个域名重定向到自己的地址,所以需要在你的 XXXX.github.io 仓库的设置中添加你刚刚注册的个人域名。看图:

    注意:当你在github仓库里保存好了自己的域名,便会在你的仓库里生成一个名字是CNAME的文件,你需要把他下载到本地,将它放在你本地存放博客文件里面的source文件下。(原因是:Hexo 3每次生成静态网页会完全覆盖之前的内容。如果我们直接创建一个新文件CNAME,填好域名,然后部署,会发现在下一次部署后这个文件就消失了,因为 HEXO 并不会自动生成 CNAME 文件,所以在部署时被覆盖删除了。放在source文件夹下它就不会被被删除。当然还有其他方法做到,可以自行百度,但我觉得这是最简单的方法。)
  • 域名解析
    1.添加解析:

    记录类型选择 CNAME

    主机记录填 www

    解析线路选择默认

    记录值填 yourname.github.io

    TTL 值为 10 分钟

    2.再添加一个解析:

    记录类型为 A

    主机记录填 @

    解析线路选择默认

    记录值填你 GitHub 仓库的 ip 地址(在cmd中ping)