VPS配置Git|VPS配置Git Hooks实现hexo博客更新

客户端使用Hexo生成静态文件,通过Git推送到VPS的Git仓库。VPS配置Git Hooks,将静态文件同步到站点目录,实现hexo博客更新。
本机准备工作

  • 安装Hexo环境
  • 安装Git
  • 生成ssh秘钥
VPS配置工作 VPS以CentOS 7为例,使用Xshell5连接到VPS,登录root账户。
安装Git
git --version# 查看系统是否安装git yum install git# 安装git yum remove git# 卸载git

新建用户
adduser git chmod 740 /etc/sudoers vi /etc/sudoers

在vi编辑器中找到如下行
## Allow root to run any commands anywhere rootALL=(ALL)ALL

在下面新增一行
gitALL=(ALL)ALL

保存后退出(linux命令 :wq),执行
chmod 440 /etc/sudoers

新建git仓库
su git cd ~ mkdir .ssh && cd .ssh touch authorized_keys vi authorized_keys# 粘贴进本地机器的ssh公钥(一般在C:\Users\用户名\.ssh\id_rsa.pub文件中) cd ~ mkdir hexo.git && cd hexo.git git init --bare# 初始化git仓库

ssh连接测试
git bash命令行中输入ssh git@VPS的IP地址,如果能登录远程主机,则表示Git配置成功
赋予git用户对网站目录的权限
cd /var/www/html# apache服务器的网站根目录 mkdir blog# 新建blog文件夹用以放置hexo博客文件 chown git:git -R /var/www/html/blog# 将目录所有者改为git用户

配置Git Hooks
su git cd /home/git/hexo.git/hooks touch post-receive#新建脚本文件 vi post-receive

在vi编辑中输入以下代码后保存退出
#!/bin/bash GIT_REPO=/home/git/hexo.git# git仓库 TMP_GIT_CLONE=/tmp/hexo PUBLIC_WWW=/var/www/html/blog# 网站目录 rm -rf ${TMP_GIT_CLONE} git clone $GIT_REPO $TMP_GIT_CLONE rm -rf ${PUBLIC_WWW}/* cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW} chmod +x post-receive# 赋予脚本的执行权限

本机配置工作 进入本地hexo博客文件夹,打开站点配置文件_config.yml,修改deploy选项
deploy: type: git repo: github: git@github.com:ChangingFond/ChangingFond.github.io.git#同步到GitHub vps: git@vps的ip:hexo.git仓库地址,master#同步到自己的VPS branch: master message: Hexo Blog updated - {{ now('YYYY-MM-DD HH:mm:ss') }})

【VPS配置Git|VPS配置Git Hooks实现hexo博客更新】按住shift右击,选择在此处打开命令窗口,运行hexo g -d,如果一切正常,静态文件已经被成功的push到了blog的仓库里。
至此,我们完成了通过git将hexo博客部署到VPS上的功能。

    推荐阅读