返回目录

如果你要将源文件夹也上传到GitHub,建议参考 hexo.io——在 GitHub Pages 上部署 Hexo

本文参考 hexo.io——部署 hexo.io——文档、安装

Hexo 搭建

安装Git

  • Windows:下载并安装 git

    Scoop:scoop install main/git

  • Mac:使用 Homebrew, MacPorts 或者下载 安装程序

  • Linux (Ubuntu, Debian):sudo apt-get install git-core​​

    Linux (Fedora, Red Hat, CentOS):sudo yum install git-core​​

    Linux (Arch):sudo pacman -S git

安装 Node.js

Node.js 为大多数平台提供了官方的 安装程序

其它的安装方法:

  • Windows:通过 nvs(推荐)或者 nvm 安装。

    Scoop:scoop install main/nodejs

  • Mac:使用 HomebrewMacPorts 安装。

  • Linux(DEB/RPM-based):从 NodeSource 安装。

  • 其它:使用相应的软件包管理器进行安装,可以参考由 Node.js 提供的 指导

对于 Mac 和 Linux 同样建议使用 nvs 或者 nvm,以避免可能会出现的权限问题。

安装 Hexo

Git与Node.js安装完成后,就可以用npm安装hexo。

1
2
3
4
5
6
7
8
9
10
11
12
13
#npm安装Hexo
npm install hexo-cli -g

#设置博客
cd 博客所放位置的绝对路径
hexo init blog
cd blog

#启动服务器
hexo server

#快捷键停止服务器
Ctrl + C

设置博客

默认Hexo本地地址 http://localhost:4000/

本地预览

Nginx 反代

  • 如果你实在不想上传到GitHub上

    可以上传到其他静态网站托管平台

    或者Nginx本地反代

    但这个需要你本地电脑一直开着

    如果你有一个本地/远程服务器的话,也不是不行

关于IPv6DDNS参考 Windows 或 OpenWrt路由器 DDNS IPv6

反代配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {      #博客
listen 443 ssl;
listen [::]:443 ssl; #IPv6+端口 证书;
server_name blog.ciyuanxing.xyz; #你的域名
server_name blog.localhost;

ssl_certificate C:\Users\xiaofang\www\pem\fullchain1.pem; #证书的绝对路径
ssl_certificate_key C:\Users\xiaofang\www\pem\privkey1.pem; #证书密钥的绝对路径

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
proxy_pass http://localhost:4000; #博客本地IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}

一键部署GitHub

关于GitHub注册 参考 注册github账户并在本地git配置多个github账户

打开你的储存库新建

Your repositories>New

新建储存库

这里要重点注意Repository name 储存库名称

前缀必须是你的GitHub用户名,后缀是.github.io

✅README初始化

Create repository 创建储存库

注意图片的main,有一些旧教程用的是master​,但新储存库是main​分支 不要搞错了

详情请看 github/renaming 在存储库中配置分支和合并

储存库配置

在地址栏输入 https://用户名.github.io

可以看到页面能打开

预览

安装与详细配置参考hexojs/hexo-deployer-git

1
npm install hexo-deployer-git --save

修改 blog\_config.yml 配置文件

滑到最下面,将deploy下的类型、目标存储库、分支名称填写上去

  • type​类型 git​​

  • repository​目标存储库 有两个方案

    • url:要从中提取和推送到的存储库的 URL。​

      https://github.com/user/project.git.io

      例如 https://github.com/ciyuanxing/ciyuanxing.github.io

    • 推荐 多账户必须​ 分支:用于部署静态站点的可选 git 分支。

      git@github.com:<username>/<username>.github.io.git

      例如 git@github.com-ciyuanxing:ciyuanxing/ciyuanxing.github.io.git

  • branch​分支名称 main

1
2
3
4
5
6
7
8
9
10
11
12
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: ''

#修改如下
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: git@github.com-ciyuanxing:ciyuanxing/ciyuanxing.github.io.git
branch: main

关于本地Git账户先参考 注册github账户并在本地git配置多个github账户

单账户直接全局默认就行

多账户: (根据ssh config修改) git@github.com-bakaxiaofang:bakaxiaofang/bakaxiaofang.github.io.git

hexo d​运行一次,会自动生成文件夹.deploy_git

.前缀的文件夹是隐藏的,依次点击查看>显示>隐藏的项目

然后修改 blog\.deploy_git\.git\config 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[branch "master"]
remote = git@github.com-bakaxiaofang:bakaxiaofang/bakaxiaofang.github.io.git
merge = refs/heads/main
[user]
name = bakaxiaofang
email = fangbushimeizhi@gmail.com

[user]

name = GitHub用户名

email = GitHub邮箱

上传测试效果图

上传测试

添加域名

DNS

域名注册可以参考 注册dynadot域名并将域名托管到cloudflare

如果只用一个blog自定义子域解析到博客,添加记录

个人建议用blog自定义子域

类型 名称 内容 代理状态 TTL 操作
CNAME blog ciyuanxing.github.io 仅 DNS 自动
编辑

如果你想要顶级域名与www子域都解析到博客,添加记录

其实直接使用顶点域也行,但不是很推荐,详情参考 GitHub文档——关于自定义域名和 GitHub 页面

类型 名称 内容 代理状态 TTL 操作
CNAME ciyuanxing.xyz ciyuanxing.github.io 仅 DNS 自动
编辑
CNAME www ciyuanxing.github.io 仅 DNS 自动
编辑

CNAME

储存库自定义域

GitHub储存库>Settings​设置>Pages​页面>Custom domain​自定义域

顶级域名+www二级域名一般情况下输入二级域名,Save​保存

记得勾选 ✅ Enforce HTTPS

自定义域

添加CNAME文件

自定义域名会因为hexo d​上传一次失效,建议在博客source​目录下添加CNAME文件

blog\source\ 创建一个CNAME文件

修改blog\source\CNAME 在里面填写域名

1
www.ciyuanxing.xyz

可能会出现的错误记录

致命错误:在 ‘/mnt/ntfs/wind/bakaxiaofang/NotesorBlog/bakaxiaofang.moe/blog/.deploy_git’ 检测到可疑的仓库所有权
要为本仓库创建特例,请运行:

git config --global --add safe.directory /mnt/ntfs/wind/bakaxiaofang/NotesorBlog/bakaxiaofang.moe/blog/.deploy_git

FATAL Something’s wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess. (/mnt/ntfs/wind/bakaxiaofang/NotesorBlog/bakaxiaofang.moe/blog/node_modules/hexo-util/lib/spawn.js:51:21)
at ChildProcess.emit (node:events:507:28)
at ChildProcess._handle.onexit (node:internal/child_process:294:12)

我在Linux下遇到小问题

1
git config --global --add safe.directory /mnt/ntfs/wind/bakaxiaofang/NotesorBlog/bakaxiaofang.moe/blog/.deploy_git

hexo cl hexo g hexo d