You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.0 KiB
2.0 KiB
| title | date | tags | categories |
|---|---|---|---|
| 在vps上搭建hexo | 2017-12-20 21:25:57 | [vps hexo] | vps |
本文记录在vps上搭建hexo的过程。
在vps上搭建hexo,网络上已经有不少教程了,但是全部套路都是一样,大致流程如下:
本地搭建hexo环境 -> 配置hexo主题等 -> 本地编写md文件 -> 通过hexo d进行远程部署
这样的流程,有个最大的问题是,远程服务器只保存了最终渲染完成的html文件,每次更换电脑都需要重新部署环境,所以我就把hexo部署到了远程vps上,本地编写md,然后提交到远程git,由git的hook功能触发hexo进行渲染和部署,大致流程如下:
本地编写md -> 提交到vps上的git-repo -> post-receive -> hexo generate -> hexo deploy -> nginx
在远程仓库的hooks目录,创建post-receive文件,在这里进行hexo的渲染和部署:
#! /bin/bash
git --work-tree=/home/lniwn/hexo/source/ --git-dir=/home/git/repo/blog.git/ checkout -f
hexo --cwd /home/lniwn/hexo/ clean
hexo --cwd /home/lniwn/hexo/ g -d
cp -Rf /home/lniwnxxx/hexo/public/* /var/www/oaoa.me/
这样可以在任何地方编写md文件,写完之后通过git提交即可看到自动部署的信息 {% asset_img TortoiseGit-message.png TortoiseGit打印的远程部署信息 %}
由于我创建了一个git用户,仅用于git相关操作,而我的登陆用户是lniwn,部署时经常会遇到权限问题,所以需要进行一些权限分配:
- 将lniwn添加到git组
$ sudo usermod -a -G git lniwn - 修改hexo文件夹所属组
$ sudo chgrp git -R /home/lniwn/hexo/ - 修改hexo文件夹组权限
$ sudo chmod g+rw -R /home/lniwn/hexo/
虽然每次git的push操作都会触发post-receive,从而进行自动部署,但是有时候还是希望手动部署下,所以写了个部署脚本auto-deploy-hexo,脚本很简单,就是以git用户执行post-receive文件:
#! /bin/bash
sudo -H -u git bash -c '/home/git/repo/blog.git/hooks/post-receive'