依然灬灰

Hexo的搭建和使用

2018/04/08

上一篇写到的SVN服务器实现链接更新web目录,其实本文应该说是它的1.0版本,我是从这里来的灵感才搞的那个小东西。
得先说说为啥写这篇吧,其实hexo的教程很多,当我第一次按照教程搭建好后感觉出现一些小问题,就是我的代码都是在本机的管理的,当我那天出门没带电脑的时候,基本上也就没办法更新啦,所以我就想到了用版本控制工具来搞定这个问题。因为我比较low,git的使用很菜所以就使用的svn。

基础篇

这里我先直接贴我用的教程吧,以后再补

hexo从零开始到搭建完整
GITHUB+HEXO博客轻松更换主题外观

中级篇

使用版本控制管理源文件,在服务器上做到提交代码,自动部署

服务器安装svn

这个我原来写过,所以就直接贴链接吧
CentOS 7.3 安装SVN

服务器安装Hexo

npm install hexo-cli -g

这个时候基本上需要的东西就都有啦。

代码库创建

这里我起名一个hexo的代码库专门存放hexo的源文件
在计算机里checkout出这个版本库
把基础篇的代码仍到这个里面
commit代码。

svn提交自动更新

首先我们进到代码库的文件夹

[root@localhost hexo]# ls
conf  db  format  hooks  locks  post_log.log  README.txt

我们需要做个钩子,我们先copy个demo
[root@localhost hexo]# cp ./hooks/post-commit.tmpl ./hooks/post-commit

接着我们修改一下commit的钩子

#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
#SVN的路径
SVN_PATH=/usr/bin/svn
#Hexo的路径 
HEXO_PATH=/usr/local/node/6.11.3/bin/hexo
#外网能访问的地址即需要更新的地址
WEB_PATH=/data/www/html/hexo
#log文件的路径
LOG_PATH=/data/svn/hexo/post_log.log
#先把版本库的代码同步到WWW目录下
$SVN_PATH update $WEB_PATH --username 'svnupdater' --password 'zyhsvnupdate' --no-auth-cache

#打开更新的目录
cd /data/www/html/hexo/
#打印当前时间信息到log文件中
date "+%Y-%m-%d %H:%M:%S" >> LOG_PATH
#清理文件
HEXO_PATH clean WEB_PATH >> LOG_PATH
#生成静态文件
HEXO_PATH generate WEB_PATH >> LOG_PATH
#发布(这部分需要将服务器的公钥上传到github上,不然权限验证过不了)
HEXO_PATH deploy WEB_PATH >> LOG_PATH

SVN更新的账号密码测试的时候可以使用你自己的账号,以后再升级成专用更新的用户账号密码

文件修改好后使用
给权限

chmod 700 ./hooks/post-commit

注意

写钩子的时候请记住一件事情写log,这个很有用的。

大体的写了一下,以后再补图。