通过GitHook部署Hexo至VPS空间
Deploy Hexo Blog to VPS By Git Hook
基本思路
- 将Hexo生成的博客静态文件利用git上传到VPS中的git仓库中
- 服务器端git仓库收到git push 之后,通过git hook 触发 一段shell 脚本
- shell脚本将git push过来的网页静态文件复制到已经配置好nginx的文件目录下
- 通过nginx转发,则可以正常访问博客
git安装配置
###1. 安装git12# root用户下yum install git
###2.新建git用户12345#root用户下#添加用户adduser git# 修改密码passwd git
###3.配置git用户123456789# git用户下# 添加ssh公钥mkdir -p ~/.sshvi ~/.ssh/authorized_keys# 添加文件及目录权限chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys# 禁用密码登录PasswordAuthentication no
###4.建立git仓库12345# git用户下cd ~mkdir blog.gitcd blog.gitgit init --bare
nginx安装配置
安装
|
|
启动并设置开机启动
|
|
打开防火墙
|
|
配置nginx
|
|
|
|
重启nginx
|
|
git hook 配置
VPS的 hexo网站目录为 /home/wwwroot/hexo/
这个目录要给 git 用户访问,hexo.git
仓库收到提交后,git 用户要把提交的内容再 checkout 到 /home/wwwroot/hexo/
目录,所以要把这个目录的所有权交给 git 用户:
|
|
建立一个仓库内容转移的缓存目录:
|
|
然后处理 hexo.git 提交的事件,自动更新内容到 hexo网站目录。在 git 用户下执行:
|
|
编辑这个 post-receive 文件:
|
|
这个脚本可以实现完全更新,即先删除原网站内所有内容,再拷贝新仓库内容到网站目录,可以避免一些不必要的问题。
还要给脚本加上执行权限:
|
|
配置 Hexo 的部署信息
打开 _config.yml
文件,找到 deploy 字段,修改如下:
|
|