N0rth3ty's Blog.

hexo博客搭建

字数统计: 956阅读时长: 3 min
2017/12/01 Share

前言

wordpress用了一年了,原来的博客基本写的是些随笔,想着新开一个blog记录下技术生活,觉得wordpress太过臃肿,于是尝试使用更加轻量的hexo
网上很多使用的都是github,这里提供部署到自己服务器的方案

博客的架构

要自己搭建一个博客呢,还是要先明白博客整体的架构,才能理解每一步的含义
个人理解的hexo呢其实就是把你的markdown渲染为静态html的一个工具,然后你将其部署到网站根目录下,然后访客通过Nginx服务访问到你的网站
基于以上原理呢有两种分支

  • 一是把hexo部署到本地,然后本地将markown解析成静态页再部署到服务器
  • 而是在服务器端对markdown文档进行解析和部署

因为服务器本来就渣(阿里云乞丐版 ,所以我更倾向于第一种解决方案
涉及到更新问题呢所以使用GitHooks自动化部署发布博客
所以最后呢本地需要安装hexo,nodejs和git,服务器端需要安装Nginx和git。这是整体的一个架构

博客的搭建

本地

本地需要装个node.js和git
git安装成功的标志是你在桌面上点右键时有个git bash here
安装过程可以下载安装包一路下一步
进入你要安装hexo的目录,右键进入bash
hexo init xxx
找到安装目录下的 _config.yml 文件,找到 [deploy] 条目,并修改为
deploy:
type: git
repo: user@www.northity.com:/var/repo/blog.git
branch: master
user@www.northity.com改成你的用户名和服务器地址
最后hexo -s可以让你的博客跑在本地的4000端口,方便本地调试。

服务器端

lnmp集成环境安装

我的vps使用的系统为Ubuntu Server 14.04.1 LTS 32位,以下以其为例。
其实只需要Nginx,不过直接装集成环境舒服一点也方便一点。这里不做赘述,详情点击这里
添加的虚拟主机默认在home/wwwroot/目录下
然后hexo是静态博客,可以不用安装数据库

配置服务器远程git

首先是安装git
$ sudo apt-get install git1
这里更安全的做法是新建立一个git用户单独用于博客更新,但出于方便考虑可以不用新建
创建证书登录,把自己电脑的公钥,也就是 ~/.ssh/id_a.pub 件里的内容添加到服务器的 ~/.ssh/authorized_keys 文件中,添加公钥之后可以防止每次 push 都输入密码。
如果你之前没有生成过公钥,则可能就没有 id_rsa.pub 文件,可以参考这里
然后始化 Git 仓库,我安装在/var/repo/blog.git 目录下的
$ sudo mkdir /var/repo
$ cd /var/repo
$ sudo git init --bare blog.git
最后需要配置githooks,这里有一些资料可以让你了解hooks
在 blog.git/hooks 目录下新建一个 post-receive 文件
$ cd /var/repo/blog.git/hooks
$ vim post-receive
然后写入如下内容
#!/bin/sh
git --work-tree=/home/wwwroot/hexo --git-dir=/var/repo/blog.git checkout -f
这里默认网站根目录为hexo
然后用chmod给这个文件设置课执行权限。
不推荐但可以使用chmod 777 post-receive
注意git仓库的所属者,否则push的时候可能有权限问题。

使用

hexo new "xxxx"
用于新建文章(当然你也可以手动
hexo g -d
能渲染并自动部署

可能遇到的问题

自动部署的时候可能没有权限修改网站根目录,这个时候需要修改网站根目录的权限
修改_config.yml 文件时,所有的冒号后面必须有个空格才能生效,别问我怎么知道的

CATALOG
  1. 1. 前言
  2. 2. 博客的架构
  3. 3. 博客的搭建
    1. 3.1. 本地
    2. 3.2. 服务器端
      1. 3.2.1. lnmp集成环境安装
      2. 3.2.2. 配置服务器远程git
  4. 4. 使用
  5. 5. 可能遇到的问题