一、前置条件

  • 已在本地电脑安装hexo
  • 具备一台服务器
  • 服务器已安装宝塔

二、服务器环境搭建

1. 添加Git用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#安装git
yum install -y nginx git

#添加Git用户,并设置Git登录密码
useradd git
passwd git

# 给git用户配置sudo权限
chmod 740 /etc/sudoers

# 找到root ALL=(ALL) ALL,在它下方加入一行
vim /etc/sudoers
git ALL=(ALL) ALL

# 将权限改回
chmod 400 /etc/sudoers

2. 给git用户添加ssh秘钥,实现服务器免密登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 注意:本地电脑需要生成git秘钥,执行一下命令
sudo ssh-keygen -t rsa -C "你的email地址"

回车后提示输入密码,此处密码可以不填, 直接回车,提示再次输入密码, 直接回车,生成成功。

# 查看本地电脑上SSH key,并copy
cat ~/.ssh/id_rsa.pub

# 登录远程服务器
ssh root@xx.xx.xx.xx

# 切换用户为git用户
su git

# 新建一个.ssh文件夹
mkdir -p ~/.ssh

# 新建一个.authorized_keys
touch ~/.ssh/authorized_keys

# 该权限是保证git用户免密登录推送文件必要步骤
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh

# 将电脑上的ssh密钥粘贴进去
vim ~/.ssh/authorized_keys

3. 服务器创建Git仓库并使用Git-hooks实现自动部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 新建目录,作为git仓库的位置
sudo mkdir -p /var/repo

# 新建目录,作为hexo部署静态文件的地址
sudo mkdir -p /www/wwwroot/hexo

# 转到git仓库的文件夹
cd /var/repo

# 创建一个名叫blog的仓库,并打开Git-hooks配置文件
sudo git init --bare blog.git
sudo vim /var/repo/blog.git/hooks/post-update

# post-update内添加内容
#!/bin/bash
git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/blog.git checkout -f

# 给post-update授权
cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/
sudo chown -R git:git /var/www/hexo

#赋予其可执行权限
sudo chmod +x post-update

到这里,整个Git仓库的配置已经完成,接下来就进入Nginx服务的部署。

三、宝塔Nginx服务部署

打开宝塔后台,创建新的站点。需要填写的内容,域名(网站博客的域名,需要提前解析到服务器),根目录(上文设置的hexo静态资源文件)、PHP版本设置为纯静态。

Nginx部署Hexo

四、修改本地Hexo配置文件

1. 修改Hexo配置文件

进入本地电脑hexo博客的根目录,编辑站点配置文件 _config.yml,找到deploy,修改内容。

1
2
3
4
5
deploy:
type: git
# repo改为repo:git@你的ip:/var/repo/hexo.git
repo: git@xx.xx.xx.xx:/var/repo/hexo.git
branch: master

2. 部署提交网站

1
2
hexo clean
hexo d -g

五、打开你的博客hexo网站

Hexo部署博客案例