​ 本文主要讲解如何搭建hexo博客网站,并直接部署在github上,实现通过xxx.github.io来访问博客,同时针对云服务器的用户,可以把Hexo博客同步部署到服务器上,通过宝塔Linux面板架设网站,并实现域名解析和绑定。针对没有云服务器的用户,也给出了直接部署在个人的Linux终端(比如:树莓派或者其他Linux开发板,软路由,NAS等)的方案和思路,并给出通过内网穿透方法实现通过自主域名访问博客的方法。最终实现可以通过xxx.github.io和自主域名访问博客网页。

​ 这里不对Hexo博客的特性做说明,详细的Hexo相关的内容,可以参考Hexo官方网站:https://hexo.io/zh-cn/

​ 这里用宝塔面板主要因为:一方面宝塔面板免去了Nginx的相关配置,可以直接用可视化操作来部署网页;另外一方面,一台Linux服务器可以同属部署多个网站,可以统一用宝塔面板统一管理。也方便该服务器不仅可以用来部署网站,还可以同时作为其他左右使用(比如可以用来做远程代码调试,内网穿透服务等)。

​ 本文主要分四个章节来讲解:

​ 一般情况下,自主域名需要做域名解析,所以,它只能访问你的云服务器或者你本地的Linux服务器,二选一即可,把hexo博客部署在Linux服务器上的操作在第三章节的前面两个部分。

二、把hexo博客部署到github网页托管,实现通过类似xxx.github.io来访问博客

​ 本节讲解如何把在本地PC部署好的博客系统同步到GitHub上,实现可以直接用xxx.github.io来访问你博客,在这里,你首先需要有一个github的账号,这里假设的github的账号名就就是senysunny,到时候你只需要替换你的账户名即可。另外需要说明的是,由于github的服务器在国外,可能会导致你登录和使用GitHub缓慢,这里你可能需要VPN服务实现github的流畅访问,这里不做VPN服务做介绍,正常情况下github国内是可以访问的。

​ 本来想着也可以把博客假设到gitee上,但是gitee目前已经停止了gitee pages服务,所以无法实现静态网页的托管服务,这里做一个说明。

​ 涉及的工具和软件:

1、 把Hexo博客部署到GitHub上

  1. 创建一个gtihub的仓库,这个仓库的名称为用户名.github.io。比如,在这里我创建的便是:SenySunny.github.io。注意,需要设置为”Public“,确保用户可以访问。

github1

  1. 为 github服务器配置用户公钥,在你的电脑终端中输入ssh-keygen -t rsa -C "邮件地址",然后输入4次回车,如果曾经创建过公钥,可能会提示你是否覆盖,输入Y回车即可。
1
ssh-keygen -t rsa -C "senysunny@163.com"

​ 实际的效果如下:

ssh1

  1. 此时会在你的电脑C:\Users\用户名目录下有一个.ssh文件夹,里面有一个id_rsa.pub文件,我们可以复制一份出来备份,后面都会用的到,用记事本打开该文件,复制里面的内容。
  2. 打开你的github的用户设置界面,选择左侧的SSH and GPG keys菜单,在里面添加一个SSH keys,其中Title可以随机填入,如下图:

ssh2

  1. 你可以在终端中输入ssh -T git@github.com测试是否成功,如果成功,会提示You've successfully authenticated的字样。
1
ssh -T git@github.com
  1. 修改博客根目录下的_config.yml文件,这里只需要修改\# Deployment部分内容即可:
1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repository: git@github.com:SenySunny/SenySunny.github.io.git
branch: main
  1. 如果你是第一次使用git,输入以下内容创建一个本地的git账户信息
1
2
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

​ 比如我,输入的信息如下:

1
2
git config --global user.name "SenySunny"
git config --global user.email "senysunny@163.com"
  1. 此时我们重新在终端中输入hexo cl来清除缓存,再通过hexo g来重新生成静态网页, 然后通过hexo d(其为hexo deployde 缩写)来把生成的网页部署到github上
1
2
3
hexo cl
hexo g
hexo d
  1. 这时,进入我们创建的仓库,就可以看到有内容被添加仓库中了,等待十几秒中之后,我们输入https://senysunny.github.io/就可以访问博客了,这个博客是可以远程访问的,效果如下:

github2