摘要:本文介绍了如何将博客部署到GitHub,并设置域名解析。
环境
Windows 10 企业版 LTSC 21H2
Node 18.14.0
NPM 9.3.1
Git 2.37.3
Hexo 4.3.1
1 创建账户
1.1 登录
注册并登录GitHub。
1.2 生成SSH公钥
打开资源管理器,查看登录用户目录里有没有.ssh目录。
根据目录是否存在:
如果目录存在,说明以前设置过.ssh目录,如果没用了就删掉,如果还有用就需要参考SSH配置多用户,在此先不做介绍了。
如果目录不存在,进入上级目录,右键进入bash命令行,执行命令生成SSH秘钥和公钥:
1 | ssh-keygen -t rsa -C 个人邮箱 |
命令说明:
- -t:指定密钥类型,默认为
rsa表示使用RSA算法,可以省略。 - -C:设置注释文字,一般会设置为个人邮箱。
执行命令后,会提示置生成的秘钥和公钥名称,默认为id_rsa表示名称,回车使用默认名称。
继续执行,还会提示设置密码和确认密码,回车设置为空。
执行结束会在登录用户目录里生成.ssh目录,打开id_rsa.pub公钥文件并复制内容。
1.3 配置SSH公钥
进入GitHub点击个人头像,选择Settings进入设置页面,在左侧找到SSH and GPG keys设置,在顶部的SSH keys模块中,点击右侧的New SSH key按钮新增配置:
在添加配置的页面中,设置Title的配置名称,然后设置Key中的公钥,粘贴刚刚复制的公钥文件内容,然后点击底部的Add SSH key按钮保存配置。
使用命令测试通过SSH能否连接到GitHub:
1 | ssh -T git@github.com |
如果提示确认输入,就按照提示输入yes然后回车即可连接成功,下次再测试就没有这个提示了,同时在.ssh目录中会增加known_hosts的配置文件。
2 提交代码
2.1 创建仓库
登录GitHub,创建一个名称为username.github.io的公共仓库,把username改为GitHub的用户名。
这种仓库是GitHub Pages仓库,一个用户只能创建一个这种仓库,创建后允许用户将仓库发布为一个静态网站,网址就是username.github.io仓库名称。
2.2 安装插件
进入博客目录,右键进入bash命令行,安装部署到GitHub上的插件:
1 | npm install hexo-deployer-git |
修改博客目录下的_config.yml配置文件,修改底部的deploy配置项,如果没有找到则自己添加:
1 | # Deployment |
2.3 发布
进入博客目录,右键进入bash命令行。
执行清除和发布命令,重新生成博客静态文件,创建发布目录,推送到仓库:
1 | hexo clean && hexo deploy |
执行发布命令后会判断是否存在.deploy_git目录:
- 如果不存在则会创建目录,推送时会强制覆盖远程仓库内容,清空历史提交记录。
- 如果存在则会更新目录,推送时会更新远程仓库内容,保留历史提交记录。
发布成功以后,可以通过项目名称访问博客:https://username.github.io
3 域名解析
3.1 域名
通过阿里云或者腾讯云,或者其他服务商,都可以购买域名。
3.2 验证
登录GitHub,点击右上角头像,选择Settings进入设置页面,在左侧找到Pages设置,点击Add a domain按钮新增域名。
输入域名后,点击Add domain按钮新增域名,会生成域名验证信息。
进入域名解析页面,新增记录:
- 主机记录为验证信息中第一条信息,复制域名前面的数据。
- 记录类型为
TXT表示文本记录,用于验证域名所有权。 - 记录值为验证信息中第二条信息,复制没有域名的数据。
- 其他信息默认即可。
点击域名验证信息下方的Verify按钮验证域名所有权。
3.3 解析
打开cmd命令行,输入命令查询IP地址:
1 | ping username.github.io |
进入域名解析页面,配置域名解析:
- 新增记录,主机记录为
@,记录类型为A,记录值为上面查到的IP地址,TTL默认为600表示生存时间为600秒,超过之后需要重新获取。 - 新增记录,主机记录为
www,记录类型为CNAME,记录值为https://username.github.io,TTL默认为600表示生存时间为600秒,超过之后需要重新获取。
在GitHub上配置域名需要配置上述两条记录,否则验证会失败。
3.4 配置
进入仓库页面,点击仓库页面右上角的Settings标签,在左侧菜单栏中找到Pages配置页,找到Custom domain填入域名并保存。
等待域名验证通过后就可以通过域名访问了。
建议开启Enforce HTTPS选项,强制使用HTTPS访问,提高网站安全性。
3.5 固定
进入博客目录下的source目录,新建CNAME文件,注意不要有后缀名,打开后添加域名并保存。
发布博客时,会将CNAME文件复制到public目录进行发布,GitHub会自动识别文件中的域名。
以后如果删除仓库,推送新的仓库时,GitHub会根据文件中的域名自动配置域名解析,无需手动配置仓库中的域名。
固定域名只能节省配置仓库域名的步骤,如果域名不是用户验证域名,还需要配置用户验证域名。
条