以确保以下情况。

  • 已经成功在电脑上部署、安装、使用Hexo创建博客。
  • 已有服务器,安装了宝塔面板
  • 已经通过SSH密钥成功连接服务器(不推荐用密码)
  • 服务器已经安装了Git(可以ssh使用命令git --version查看git版本)

如果上面情况没达成,那么需要访问咕咕写的:将Hexo部署到阿里云轻量服务器(保姆级教程)

为什么要通过Git用户来传输?

主要为了安全性。如果你是个人使用的小服务器更在意方便的话,可以跳过git创建和文件授权部分,最后在Hexo的配置中直接使用root帐户进行传输。但是强烈推荐使用自己新建一个Git用户传输,虽然比较麻烦,也容易报错,但是更加安全,保持最小权限原则。

创建git用户

此章节如果你打算使用root用户可跳过

1
adduser git

输入两次密码后,信息简单写一下或者不写一路回车,最后发送Y确认一下即可。

授予git的权限

此章节如果你打算使用root用户可跳过

添加git用户权限

1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

在用户特权规范中添加git用户。

git权限

按i进入编辑模式,添加下面的内容。

1
git     ALL=(ALL:ALL) ALL

修改后

然后按 “Esc” 键,此时最底下的—INSERT—消失,再输入 “:wq”,即保存退出。

改回权限

1
chmod 400 /etc/sudoers

切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

1
2
3
4
su git
mkdir ~/.ssh

vim ~/.ssh/authorized_keys

按”i”进入编辑模式,将我们的id_rsa.pub文件中的公钥复制到编辑器中,按”esc”,然后按”:wq”,保存退出。这样就可以免输密码提交Hexo了。

接着,输入一下命令,赋予权限。

测试git

此章节如果你打算使用root用户可跳过

我们使用终端(命令行工具)直接ssh使用git帐户登录一下。

1
ssh git@192.168.1.1

ip地址换成你的服务器ip

登录成功的过程中不需要输入密码,我们就成功了。

创建仓库

切换到root帐户

1
sudo su root

在你需要放入仓库的地址创建一个repo文件夹。例如/var/repo

1
mkdir /var/repo

赋予权限(如果你使用root帐户可跳过):

1
2
chown -R git:git /var/repo
chmod -R 755 /var/repo

接下来创建hexo目录作为网站根目录:

1
mkdir /var/hexo

赋予权限(如果你使用root帐户可跳过):

1
2
chown -R git:git /var/hexo
chmod -R 755 /var/hexo

接下来创建一个空白的git仓库

1
2
cd /var/repo
git init --bare hexo.git

创建成功

创建一个新的 Git 钩子,用于自动部署.

在 /var/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。

1
vim /var/repo/hexo.git/hooks/post-receive

进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。

1
2
#!/bin/bash
git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f

修改权限:

1
2
chown -R git:git /var/repo/hexo.git/hooks/post-receive
chmod +x /var/repo/hexo.git/hooks/post-receive

到这里Git仓库已经搭建完毕了。

宝塔部分

创建一个网站,然后网站目录设置成/var/hexo即可。

hexo

修改本地Hexo配置

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

1
2
3
4
5
deploy:
type: git
#repo改为repo: git@你的域名:/var/repo/hexo.git
repo: git@hjxlog.com:/var/repo/hexo.git
branch: master

提交你的网站

在本地提交hexo

1
2
hexo clean
hexo d -g