1.服务端准备

1.1 Nginx 环境配置

1.1.1 安装 nginx

  • 下载 Nginx
1
yum install nginx

安装成功则出现下图所示的信息。
image-20250112154848339

  • 查看 nginx 版本
1
nginx -v

出现的信息如下图所示

image-20250112155739552

1.1.2 更改Nginx配置文件

需要将Nginx的配置文件中网站的根目录(root)指向hexo的部署目录,以及修改域名(server_name)为自己已备案的域名,如果没有,则填公网Ip。

  • 首先创建一个文件夹来存放hexo的部署文件
1
mkdir -p /data/hexo
  • 通过下面命令找到Nginx的安装目录
1
rpm -ql nginx

image-20250112161249334

  • 修改nginx配置文件nginx.conf
1
2
3
4
//进入nginx安装路径
cd /ext/nginx
//通过vim打开配置文件
vim nginx.cong

image-20250112184612575

  • 进入到/etc/nginx/conf.d文件夹下面,通过vim default.conf命令打开文件,添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
listen [::]:80;
server_name 公网IP;

location / {
root /data/hexo;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

image-20250112162450096

  • 重新启动nginx
1
2
3
4
//关闭nginx
nginx -s stop
//启动nginx
nginx

1.2 Node.js安装与环境配置

1.2.1 安装node.js

1
2
3
4
5
6
7
8
//切换目录
cd /
//通过yum命令安装node.js
yum install -y nodejs
yum install -y npm
//通过一下命令查看node与npm版本
node -v
npm -v

image-20250112164506266

1.3 Git环境配置

1.3.1 安装Git

依次执行以下命令:

1
2
3
4
//通过yum安装git,遇到yes选yes
yum install git
// 查看版本号
git --version

image-20250112165324098

1.3.2 创建git用户

依次执行以下命令

1
2
3
4
5
6
7
8
9
10
# 创建git用户
adduser git

# 修改git用户的权限
chmod 740 /etc/sudoers

# 进入 sudo 命令文件
vim /etc/sudoers

#找到 root ALL=(ALL) ALL,在下面添加 git ALL=(ALL) ALL,如下图所示

image-20250112165917548

继续执行以下命令

1
2
3
4
5
# 修改文件权限
chmod 400 /etc/sudoers

# 设置 git 用户的密码
sudo passwd git

1.3.3 配置SHH免密登录

由于是将本地的静态文件推送到服务器的 Git 仓库中,所以要配置 ssh 免密登录服务器

  • 服务端,依次执行以下指令
1
2
3
4
5
6
# 切换到 git 用户
su git

# 在根目录创建.ssh文件夹,存放公钥
cd ~
mkdir .ssh

image-20250112170733812

  • 本地计算机打开Git Bash,执行以下命令
1
2
3
4
# 在本地生成公钥/私钥对
$ cd ~
$ cd .ssh
$ ssh-keygen

image-20250112170944016

image-20250112171448016

  • 给私钥设置权限,执行以下命令
1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519(生成的私钥)

image-20250112171245494

  • 将本地生成的公钥(id_ed25519.pub)上传到服务器的/home/git/.ssh目录下

image-20250112174847097

  • 新建authorized_keys文件,并拷贝公钥的内容到该文件中,依次执行以下指令
1
2
3
4
5
6
7
8
9
10
cd ~/.ssh
cp id_ed25519.pub authorized_keys
cat id_ed25519.pub >> ~/.ssh/authorized_keys

# 设置权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

# 确保 SSH 相关的文件和目录具有正确的 SELinux 安全标签
restorecon -Rv ~/.ssh

image-20250112175027089

  • 测试本地免密登录服务器,进入本地计算机的Git Bash,输入以下指令
1
ssh -v git@xxx.xxx.xxx.xxx(公网IP)

image-20250112175215705

1.3.4 配置Git仓库

  • 执行一下指令,在服务器新建一个Git仓库,同时新建一个钩子文件
1
2
3
4
5
6
7
cd ~
# 初始化仓库
git init --bare hexo.git
# 初始化钩子文件
vi ~/hexo.git/hooks/post-receive
# 在钩子文件中,输入以下内容,并保存退出
git --work-tree=/data/hexo --git-dir=/home/git/hexo.git checkout -f

image-20250112175942519

image-20250112175907753

  • 通过以下指令,授予钩子文件可执行权限
1
2
3
chmod +x ~/hexo.git/hooks/post-receive
cd ~
sudo chmod -R 777 /data/hexo

image-20250112180218185

2.部署Hexo博客到服务端Git仓库

2.1 修改Hexo项目中的配置文件

  • 修改配置文件中的以下相关内容,必须修改的是_config.yml文件
1
2
3
4
deploy:
type: git
repo: git@公网ip:/home/git/hexo.git
branch: master

image-20250112190032627

2.2 安装插件hexo-deployer-git和hexo-server

  • 在项目控制台执行以下指令,实现插件安装
1
2
3
4
5
# 用于将 Hexo 生成的静态文件推送到指定的 Git 仓库
npm install hexo-deployer-git --save

# 用于在本地启动一个 Hexo 服务器,方便在本地预览博客
npm install hexo-server

image-20250112181402955

2.3 配置git全局变量

  • 回到Git Bash,输入以下内容
1
2
3
# email 和 name 随便填一个也可以
git config --global user.email "xxxxxxxxxx@xx.com"
git config --global user.name "xxx"

2.4 生成静态文件和发布博客

  • 在终端输入以下指令
1
2
3
4
5
6
7
8
# 清除之前生成的静态文件
hexo clean

# 生成静态文件
hexo generate

# 部署到 Git 仓库
hexo deploy

image-20250112182039916