MENU

VPS配合Git搭建Hexo博客

July 7, 2016 • Read: 2862 • 代码

之前用的 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   # 公钥加到授权密钥里
  3. Windows下私钥保存到C:\Users\dashen\.ssh\目录下,经测试,最好重命名为id_rsa,因为名字叫别的 Hexo 好像不认识。。。
  4. 测试一下是否能登陆,就用刚才的私钥就好。
  5. 创建一个 Git 项目。

     su git
     cd ~
     mkdir hexo.git
     cd hexo.git
     git init --bare
  6. 在 Hexo 配置文件里写好 Git 地址,试试hexo d能否成功。
  7. 创建 hook 任务让它把提交上来的文件复制到 Web 目录下。

     su git
     cd ~/hexo.git/hooks
     vim post-receive

    将如下脚本复制进去:

    #!/bin/sh
    git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

    其中,var/www/hexo 是你博客部署的目录,var/repo/blog.git 是 Git 目录,注意将两个目录的所有者都改为 git 用户。

    sudo chown -R git:git blog.git
  8. hexo d 一下看看 Web 目录下是否有了新提交的文件,注意此时 shell 不要停在脚本中任意一个目录下,否则会失败的。如果不行,看看几个目录的权限,保证 git 用户有读写权限,www-data 用户对 Web 目录有执行权限。
Last Modified: February 14, 2017
Archives QR Code
QR Code for this page
Tipping QR Code