VPS配合Git搭建Heo博客

之前用的 Gitblog 最近出现了一个奇葩的问题,文章不按时间排序了,仔细看了文档也没有地方说这个问题。无奈之下换回以前的 Hexo。

0x01 Hexo的本地安装

这是一个都被大家写烂了的部分,我就不再多说了,其实也不难,看看文档就行了。还不会就随便搜两篇教程看看。

这里值得注意的就是 Windows 下环境变量要配置好,文档里推荐的 nvm 并不会帮你弄环境变量,所以还是去node.js官网下一个安装包更方便, Git 也是必需的东西,同样要配置环境变量。

还有就是 npm 的源国内连很慢,可以用淘宝的镜像。 Windows 下在用户目录下(如C:\Users\dashen\)新建一个.npmrc文件,写入:

registry = https://registry.npm.taobao.org
搞定。

0x02 部署到VPS

选好了主题,写完了配置文件,搞定什么评论、百度统计、SEO、永久链接这些东西后,你想把静态文件部署上去,网上的教程全是教你放到 Github 上,国内上 Github 又那么慢,果断撸到自己的 VPS 上。

开始我觉得搭一个私有 Git 很烦,我只要传个静态页面,不用搞那么复杂,后来我发现我错了。。。当用 SFTP 删除原有文件,再传新的文件上去后,我想死的心都有了,太麻烦了,而且容易出错,有时候对以前的文章做了点改动,传的时候忘了删掉之前的文件,就会时不时的出点小差错。

所以我还是费点劲搭一个 Git 吧。

  1. 本机和 VPS 都装好 Git;

  2. 生成密钥(我推荐在 VPS 上弄, Xshell 给我生成的密钥连不上,我也不知道为什么)。

在 VPS 上:

sudo useradd -m git # 创建 git 用户,也可以用 adduser
sudo passwd git # 设置密码
su git
cd ~
ssh-keygen # 根据自己喜好指定路径之类的,一般默认就可以了,把私钥自己复制到本机
cp id_rsa.pub authorized_keys # 公钥加到授权密钥里

  1. Windows下私钥保存到C:\Users\dashen.ssh\目录下,经测试,最好重命名为id_rsa,因为名字叫别的 Hexo 好像不认识。。。

  2. 测试一下是否能登陆,就用刚才的私钥就好。

  3. 创建一个 Git 项目。

su git
cd ~
mkdir hexo.git
cd hexo.git
git init --bare

  1. 在 Hexo 配置文件里写好 Git 地址,试试hexo d能否成功。

  2. 创建 hook 任务让它把提交上来的文件复制到 Web 目录下。

su git
cd ~/hexo.git/hooks
vim post-receive
将如下脚本复制进去:

! /bin/bash -l

GIT_REPO=/home/git/hexo.git # Git 项目路径
TMP_GIT_CLONE=/tmp/64mb # 临时路径
PUBLIC_WWW=/var/www/hexo.com/html # Web 目录
rm -rf ${TMP_GIT_CLONE} # 删除临时路径下的文件
git clone $GIT_REPO $TMP_GIT_CLONE # 将提交上来的文件 clone 到临时路径
rm -rf ${PUBLIC_WWW}/ # 删除 Web 目录下的文件
cp -rf ${TMP_GIT_CLONE}/
${PUBLIC_WWW} # 临时路径下的文件复制到 Web 目录下

  1. hexo d一下看看 Web 目录下是否有了新提交的文件,注意此时 shell 不要停在脚本中任意一个目录下,否则会失败的。如果不行,看看几个目录的权限,保证 git 用户有读写权限,www-data 用户对 Web 目录有执行权限。

关键字:Hexo, blog, vps, git


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部