利用Hexo和Github搭建属于自己完全免费的网站

一、先在电脑本地实现

安装Hexo之前需要下载安装:
Node.js
Git

如果您的电脑中已经安装上述必备程序,那么恭喜您!接下来只需要在Git Bash中使用 npm 即可完成 Hexo 的安装。

1
$ npm install -g hexo-cli

如果没有安装这是Hexo的官网安装教程,这两个程序安装很简单,就不多说了。

安装 Hexo

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

1
$ npm install -g hexo-cli

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

1
2
3
$ hexo init /d/blog
$ cd /d/blog
$ npm install

本地调试

目前为止,已经搭建好自己的Hexo博客了,但是只能在本机上查看。执行以下命令

1
2
3
$ hexo clean
$ hexo g
$ hexo s

然后在浏览器中输入 localhost:4000 就可以看到自己的博客了。

但是只能在本地查看,如果想让别人也能访问,那么就需要部署到Github上面,下面我们就部署上去。

二、上传Github

注册Github账户

前往Github网站,注册一个新用户。注意用户名不要用大写,后面的二级域名要用到,大写的会出问题,用邮箱注册的一定前往邮箱去验证邮件。要不然之后可能会有小问题。

创建一个新的repository

在自己的Github主页右下角,创建一个新的repository。比如我的Github用户名为gitzhaoyang,那么我创建的repository的名字应该是 gitzhaoyang.github.io

这里严重注意:

一定要以你的Github用户名.github.io创建,创建的类型是必须公开的,不然后面的网页功能不能使用。假如我没有用gitzhaoyang.github.io而是用了mungo.github.io,那么当我浏览器访问博客的时候会出现404错误。这里并不是没有部署成功,而是把它部署在了这里:

1
http://gitzhaoyang.github.io/mungo.github.io

所以,如果想直接gitzhaoyang.github.io访问,那么就需要和用户名保持一致。题主在这里吃了不小的苦头,最后给Github客服发邮件才知道原因。

将本地的文件部署(上传)到Github账户中

安装 hexo-deployer-git。

1
$ npm install hexo-deployer-git --save

编辑本地Hexo目录下文件_comfig.yml,在最后添加如下代码(在你修改时,把 gitzhaoyang 要替换成你自己的用户名)

1
2
3
4
deploy: 
type: git
repository: http://github.com/Gitzhaoyang/gitzhaoyang.github.io.git
branch: master

.yml文件对格式规范要求很严格,type: repository: branch: 前面有两个空格,冒号后面都有一个空格,不然会提示错误。

配置文件完成以后就可以部署到Github了

生成站点文件并推送至远程库。执行

1
hexo clean && hexo deploy

命令。前者清除站点文件,后者重新生成站点文件并将之推送到指定的库分支。

上传完成后就可以通过gitzhaoyang.github.io看到自己的网站了。

三、申请免费域名

免费的域名可以到freenom这个网站去注册,注册也是很简单的,先用自己的邮箱注册这个网站,然后再选择自己想要的域名就可以了,这个网站有很多后缀的域名是可以免费使用一年的,比如我的用的是airibi.cf就是可以直接使用一年的。

四、域名解析

域名注册好了以后可以通过dnspod这个网站来解析到自己GitHub的网站上,这个网站是属于腾讯的云服务,所以直接用QQ登录就可以了,进入后台以后点击域名解析,再点击添加域名然后里面就会出现两条默认的NS记录,将这两条默认的NS记录复制到刚刚注册域名的freenom这个网站的域名管理那里,找到自己的域名,在解析那里选择DNS记录,把复制过来的两条NS记录添加到这里,刚申请的域名就和这个DNS解析网站连在一起了。

Ping出你Github网站的二级域名的IP地址,一定要用你ping出的IP地址,因为原来的二级域名就是支持https的,用其他的IP地址可能会解析错误或者用不了https。

Ping出二级域名的IP地址后在dnspod这个网站上添加两条A记录,一条是带www的一条是不带的,记录值都是你ping出来的IP地址,以后想要通过网站SEO验证比如谷歌站长平台,也同样可以在这里添加TXT记录就可以。

解析完成后,在Github你的仓库后台添加你的域名,如果强制使用https那里还不能打勾,那就需要在等几分钟,说明解析还没有完成,解析完成后那里就可以打勾强制使用https了,并且是带有证书的,到这里域名解析完成可以用你的域名来访问你的网站了。

五、添加CNAME文件

在本地网站目录source文件夹里添加CNAME文件,这个CNAME文件在你添加域名的时候就会自动添加到你Github的网站根目录里,但是为方便可以把它克隆或者下载下来放到source文件夹里,或者自己在这个文件下自己创建这个文件,里面放上你的域名也是可以的,这样做每次更新网站,这个文件就不会被覆盖了,也不用每次添加域名就能访问了。

到这里免费的网站就已经搭建完成了,后面就是安装主题和修改配置文件了,这里的内容很细也很分散,我有机会再写另外的一篇。