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
    root    ALL=(ALL)     ALL

在下面新增一行

    git   ALL=(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: [email protected]: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') }})

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

你可能感兴趣的:(VPS配置Git Hooks实现hexo博客更新)