Hexo配置手顺

由头

项目组内要做一次内部分享,希望分享一些和工作不太相关并且自己感兴趣的内容,索性就搭建一个个人博客站点吧

基本思路

在本地生成静态文件,把静态文件部署到linode上,用Nginx直接做Web服务,由于hexo支持git的部署方式,从而可以实现从本地更新博客,方便快捷。

搭建流程

客户端配置

安装Node.js

官网下载安装包,一路下一步。

安装Git

官网下载安装包,一路下一步。

安装hexo

1
2
3
4
5
$ npm install -g hexo-cli
$ hexo init
$ npm install
$ hexo d -fg
$ hexo serve

服务器配置

服务器版本Ubuntu 16.04LTS

安装git

1
$ sudo apt-get install git-core

安装nginx

1
2
sudo apt-get update
sudo apt-get install nginx

创建git仓库

1
2
3
cd ~
mkdir hexo.git && cd hexo.git
git init --bare

配置git hooks

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

保存如下

1
2
3
4
5
6
7
8
#!/bin/bash
GIT_REPO=~/hexo.git #git仓库
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/var/www/hexo #网站目录
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

然后赋予脚本的执行权限

1
chmod +x post-receive

配置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
vim /etc/nginx/conf.d/hexo.conf
server {
listen 80;
root /var/www/hexo;
server_name example.com www.example.com;
access_log /var/log/nginx/hexo_access.log;
error_log /var/log/nginx/hexo_error.log;
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
root /var/www/hexo;
access_log off;
expires 1d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
root /var/www/hexo;
access_log off;
expires 10m;
}
location / {
root /var/www/hexo;
if (-f $request_filename) {
rewrite ^/(.*)$ /$1 break;
}
}
}

重启nginx

1
service nginx restart

本地的最后配置

配置hexo配置文件

在hexo根目录下,打开_config.yml, 修改deploy选项

1
2
3
4
5
deploy:
type: git
message: update
repo:
s1: root@IP:hexo.git,master

然后运行

1
hexo g && hexo d

更新博客

编写完的md文件保存到hexo\source_posts目录下
Blog的参数如下,注意每个参数的 : 后都有一个空格。

1
2
3
4
5
6
7
8
9
10
11
12
13
title: title
date: yyyy-mm-dd
categories: category
tags: tag
#多标签请这样写:
#tags: [tag1,tag2,tag3]
#或者这样写:
#tags:
#- tag1
#- tag2
#- tag3
---
正文

最后运行

1
hexo g && hexo d

End