VPS配置Git Hooks实现hexo博客更新
客户端使用Hexo生成静态文件,通过Git推送到VPS的Git仓库。VPS配置Git Hooks,将静态文件同步到站点目录,实现hexo博客更新。
本机准备工作
- 安装Hexo环境
 - 安装Git
 - 生成ssh秘钥
 
VPS配置工作
VPS以CentOS 7为例,使用Xshell5连接到VPS,登录root账户。
安装Git
1  | git --version # 查看系统是否安装git  | 
新建用户
1  | adduser git  | 
在vi编辑器中找到如下行
1  | ## Allow root to run any commands anywhere  | 
在下面新增一行
1  | git ALL=(ALL) ALL  | 
保存后退出(linux命令 :wq),执行
1  | chmod 440 /etc/sudoers  | 
新建git仓库
1  | su git  | 
ssh连接测试
在git bash命令行中输入ssh git@VPS的IP地址,如果能登录远程主机,则表示Git配置成功
ssh可同时支持publickey和password两种授权方式,publickey默认不开启,开启配置为yes。
如果客户端不存在.ssh/id_rsa,则使用password授权。
存在则使用publickey授权;如果publickey授权失败,依然会继续使用password授权。
赋予git用户对网站目录的权限
1  | cd /var/www/html # apache服务器的网站根目录  | 
配置Git Hooks
1  | su git  | 
在vi编辑中输入以下代码后保存退出
1  | 
  | 
本机配置工作
进入本地hexo博客文件夹,打开站点配置文件_config.yml,修改deploy选项
1  | deploy:  | 
按住shift右击,选择在此处打开命令窗口,运行hexo g -d,如果一切正常,静态文件已经被成功的push到了blog的仓库里。
至此,我们完成了通过git将hexo博客部署到VPS上的功能。
参考资料
感谢以下作者的文章对笔者的帮助
常见问题
ssh使用公钥授权免密登录不通过Permission denied(publickey,gssapi-keyex,gssapi-with-mic)
尝试以下步骤:
1.运行vi /etc/ssh/sshd_config,找到以下代码,按如下格式修改1
2
3
4RSAAuthentication yes
PubkeyAuthentication yes
StrictModes no
AuthorizedKeysFile .ssh/authorized_keys保存后退出,重启sshd服务
1
2
3
4
5
6# sshd服务相关命令
systemctl restart sshd.service
systemctl status sshd.service # 查看ssh服务的状态
systemctl start sshd.service # 开启ssh服务
sytemctl enable sshd.service # ssh服务随开机启动,反之disabled
systemctl stop sshd.ervice # 停止ssh服务2.修改文件夹以及文件权限
1
2chmod 700 /home/git/.ssh
chmod 644 /home/git/.ssh/authorized_keys3.关闭SELinux
1
2
3
4setenforce 0 # 暂时关闭,重启后恢复
vi /etc/selinux/config # 永久关闭
SELINUX=disabled
VPS配置Git Hooks实现hexo博客更新