我们之前的工作是在本地搭建的Hexo服务,只有自己能看到。如果想让别人也能访问到你的博客,就必须部署在服务器上。但是仅仅为了一个静态网站就租一个服务器,不仅配置麻烦,而且还花钱。有很多平台提供静态网站托管服务,这里选择了GitHub Pages。今天就介绍如何把本地Hexo部署到GitHub上。
部署到GitHub
创建GitHub仓库
作为全球最大同性交友社区,GitHub也提供个人博客托管服务。不会用GitHub的也不要紧张,以下都是很基础的操作。
首先注册一个GitHub账户,然后创建一个名为[账户名.github.io]的仓库(repository),这是固定写法。
与GitHub连接
GitHub不接受非法的提交,所以本地必须与GitHub账户相联。首先打开终端,输入以下命令:
$ git config --global user.name [你的GitHub用户名]
$ git config --global user.email [你的GitHub注册邮箱]
本地通过SSH与GitHub相联,所以需要生成一个SSH key,会产生一个公钥和一个私钥,公钥提交到GitHub账户上,私钥自己保留。生成新的key之前,先检查一下有没有旧的。
$ cd ~/.ssh
如果显示No such file or directory
,那就表示没有。如果有,就会跳转到ssh
目录下,我们需要把旧的删掉:
$ rm id_rsa*
删之前也可以备份一下哦。然后就可以生成新的key了:
$ ssh-keygen -t rsa -C [你的GitHub注册邮箱]
系统会提示你添加加密串,可以不添加的,直接三个回车跳过。
然后就可以在~/.ssh
目录下找到新生成的id_rsa
和id_rsa.pub
。在GitHub的setting中,有一个SSH keys的选项,在那里新建一个SSH Key,Title随意填,把id_rsa.pub
文件里的内容粘贴到Key栏。最后点击添加即可。最后我们测试一下:
$ ssh -T git@github.com
出现You've successfully authenticated, but GitHub does not provide shell access.
说明连接成功。
部署到GitHub
下面我们将Hexo与GitHub相联。
还记得上一节的配置文件_config.yml
吧,里面有一个deploy
选项,请按如下方式填写:
deploy:
type: git
repo: https://github.com/[GitHub账户名]/[GitHub账户名].github.io.git
branch: master
下一步,在终端安装Git部署插件
$ npm install hexo-deployer-git --save
最后我们输入运行以下三个命令,作用分别是清理旧文件,生成新的静态网页和部署。
$ hexo clean
$ hexo g
$ hexo d
OK!部署成功,在浏览器地址栏输入你的仓库名,就可以看到你的博客啦!
绑定域名
我们现在的博客网址是GitHub提供的,有时候我们更想要一个属于自己的域名。这部分不难,但是要一步一步来。
买域名
域名服务商有很多,我只用过GoDaddy,还可以,不过风评好像一般般。我没用过别的,所以不评价别的。而且GoDaddy已经不支持SOPA了,用起来不会被谴责。
DNS设置
我们不用GoDaddy的DNS服务,因为其默认DNS在国内好像ping的延时比较大。这里我用的DNSpod,很稳。
注册好后,添加自己刚刚买的域名。按下图所示添加记录(除了最后一行的记录值)。
注意前两行的记录值,其实是GitHub Page的IP地址。最后一行的记录值,换成你自己的仓库地址。
回到GoDaddy,找到你的域名的DNS管理,使用自定义域名服务器。添加如下两个域名服务器地址:
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net
域名绑定
最后一步,在你的Hexo的source
目录下,创建一个名为CNAME
的文件,注意,没有后缀。里面只写自己买的域名,建议不加www.
,只写域名.com
。
好啦~试一试,到终端重新生成一遍,再发布一下。最后到浏览器地址栏敲入自己的域名,就能看到自己的博客啦~(看不到也没关系,DNS有延迟,等一等就好了。)
小结
今天介绍了如何把本地Hexo服务部署到GitHub上,并绑定自己的域名。下节我们介绍主题的定制。我用的是Next主题。
元旦快乐~