hexo恢复搭建

写下这篇博客,主要用于记录自己搭建博客过程,以后重装系统后有一个参考的恢复方向(已经干掉重新来了好几次,每次都要找资料,猝),而且,不得不说,windows系统,C盘没100G(现在300G都不够)真的用不了多久,不知道是不是只有我是这样!!😭😭😭😭

1.提前准备

安装 Hexo 相当简单,只需要先安装下列应用程序即可:

可以点击上面的链接进去官网下载,git下载慢的可以去淘宝源。这里我分享我目前用的版本:

安装过程不再详细说明,简单的全选下一步就行,安装的位置自己喜欢放哪里就放哪里呗(doge)

2.查看npm(cnpm)

1
(Win+R)运行 ---> cmd 

查看版本:

node -v
npm -v

3.安装hexo

1
npm install -g hexo-cli

如果国内的比较慢,安装淘宝源cnpm,之后再在cmd中安装::

npm install -g cnpm --registry=http://registry.npm.taobao.org
cnpm install -g hexo-cli

若发现淘宝源下载过程中出现卡死,则最好换回原服务器:

npm config delete registry

4.初始化hexo

  1. 选择一个空目录,用于本地部署,有内容的目录会报错

  2. 在目录里边用Git bash或者Powershell,初始化hexo

    1
    hexo init

注意:如果你的git版本比较高,如笔者使用的Git-2.31.1-64-bit可能会报10054错误:

1
2
3
INFO  Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
fatal: unable to access
'https://github.com/hexojs/hexo-starter.git/': OpenSSL SSL_read: Connection was reset, errno 10054

出现这个错误先检查下是否开了多个bash,比如:一个在运行hexo s,一个在运行hexo init,特别在重建博客的时候这个问题最常见,最简单的解决方法就是关掉其他的bash。

当然如果问题还没解决,可以尝试把SSL认证关掉:

1
git config --global http.sslVerify "false"

如果还是不行,那就不清楚原因了,我之后挂了个代理再重新hexo init一次问题就解决了,也有可能是github抽风了。

2021.12.7 10053 错误

这次重建的时候报10053错误了,如下:

10053

虽然不理会它也可以搭建,不过会少10-15个左右的包,后期装上就好,网上说是Git默认限制推送的大小的原因,只要运行命令更改限制大小,增加缓冲:

1
git config --global http.postBuffer 524288000

但是我试了之后不管用,就算我把网络验证关掉了,也不管用,最后还是挂了个梯子解决了


初始化完成之后使用hexo g、再hexo s,如果弹出默认主题初始页,则说明本地初始化成功了!

image-20210402190136280

6.部署到远端

6.1创建SSH密钥

打开gitbash,配置本机用户名和邮箱,生成SSH密钥

1
2
3
git config --global user.name "yourname"
git config --global user.email "youremail"
ssh-keygen -t rsa -C "youremail"

image-20210402191410819

生成密钥过程所有的提问全部回车就行

生成的密钥文件放在:C:\Users\(你计算机的当前用户名)\.ssh

image-20210402201820428

其中pub结尾的为公钥,用记事本打开复制里面的所有内容

6.2将密钥放在远端

注册Github或者Gitee账号,将复制的公钥添加进SSH中

Setting —> SSh

image-20210402214646615

6.3创建仓库

image-20210402192650539

同时勾上这个

image-20210402192738568

如果是Github的话,仓库地址需要这样写:用户名.github.io,通常用户名和下图的Owner一致,如:

github,io

6.4 配置_comfig.yml

仓库创建好之后,复制仓库地址建议使用SSH(github、gitee都一样的操作)

image-20210402193005129

打开hexo主目录下的_comfig.yml,在最后,修改:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: 'git'
repo: 你刚刚复制的仓库地址
branch: master

注意:

如果你打开文件只看到type,没有repobranch,自己加上就行了,注意属性名和属性值之间的空格,如type'git'中间是有空格的,另外type属性的两个单引号,不要去掉!!

对于Github,建议repo使用SSH链接,不建议使用HTTP链接,尤其是在当你使用代理的时候,hexo d命令可能会报错

sock5

想要解决也很简单:

  • 使用SSH链接
  • 不使用代理

7.安装hexo deployer推进远端

回到git bash或者powershell,安装hexo deployer

1
cnpm install --save hexo-deployer-git

然后推到远端:

1
hexo d

这一步Github可能会弹出对话框OpenSSH

image-20210402215905251

甚至是提示登陆的窗口:

image-20210811150819631

注意:

如果遇到这种情况:

1
fatal: unable to access 'https://github.com/ArgentoAskia2/ArgentoAskia2.github.io.git/': Could not resolve host: github.com

或者

1
2
error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054
send-pack: unexpected disconnect while reading sideband packet

造成上面的情况有很多原因,如果是github,最常见就是github抽风了,访问不了,尝试多几次hexo三连就好。

如果还不行的话,使用代理再尝试吧,国内没办法

2021.12.7 多keygen情况下,hexo d未指定user.name和user.email问题

如果电脑配置了多个密钥,那么在提交过程中可能会出现,未指定全局user.name和user.email的问题

success deploy but something wrong

最后面的Everything up-to-date的意思就是当前文件时最新的。出现这个的时候,你在Github不会看到有任何的Commit记录,它只会把当前的分支master和远端的master分支进行同步,所以如果你对source文件夹里面的文章进行了增删改的话,也会同步到远端分支,但是不会留下任何的commit记录(不知道我这样描述的对不对,我特地把某篇文章删了,然后重新hexo d,上去github一文章真的没有了,但是没有任何commit记录)

因为Git在提交的时候需要user.name和user.email来确定提交者,所以这个问题也很好解决,只要指定全局user.name和user.email就可以了(指令在图的Run后面),但是在指定的时候需要注意user.name和user.email的填写,尤其是在本机配置了多个密钥的情况下,一定要写对,因为官方是根据user.email来定位你在Github中的账户的(具体见Github的Setting—->email),如果你写错了user.email和user.name,而且还是在同一台机器上,那么在Github的部署仓库那边,贡献者那一栏就不是你了😭😭😭😭,如下图:

image-20211207160257550

然后,最最最搞笑的是,第二次改user.email和user.name的时候还输错了,输了个无效的邮箱,于是发生和这位知乎上的兄弟一模一样的经历:GitHub用户识别机制

千辛万苦之后(指折腾了4个小时),终于搞定好了,为了纪念,就不删另一个账号的贡献者!


8.最后的一步

对于Github的朋友,你们的小窝估计已经搭好了,访问地址一般都是用户名.github.io

而对于Gitee的朋友,你们还需要部署GiteePage

image-20210402201359207

image-20210402201430087

image-20210402201510671

开启服务之后,这个就是你的博客地址啦,可以通过这个来访问!

如果想要绑定域名的话可以参考这篇文章:hexo博客绑定域名

9.一些问题解决方法参考

在这里你可以寻找到一些使用hexo时出现问题的解决方案!

更改了Node.js环境之后如何恢复hexo?

如果你的Node.js变更了,比如进行版本更新,移动了Node.js的位置等,则可能会导致hexo指令无法找到问题:

1
bash: hexo: command not found

如果之前层使用过hexo的指令,则默认情况下在博客的根目录下会有一个node_modules文件夹:image-20241003233516030

在这个文件夹内,有一个.bin目录,我们之前直接运行的hexo指令就存放在这里:image-20241003233931787

我们只要把这个写到环境变量中即可。

解决方案参考:完美解决 bash: hexo: command not found-CSDN博客

其实上面的问题不仅仅出现于Node.js的改变,理论上只要git进行了改变,基本上都会出现这个问题,可能有兄弟会发现,我们刚刚安装完hexo的时候基本上只能使用git来运行hexo clean、hexo g、hexo d等指令,使用cmd无法运行,原因就是当我们安装完hexo的时候,只往gitPATH环境变量中写入了上面的hexo的运行路径,而当前windows系统的却没有,所以无法使用CMD运行