记录一次Hexo搭建过程踩过的一些坑

安装准备

  • Git
  • Node.js
安装Git

Git官方地址:https://git-scm.com/downloads

或者使用yum apt 等包管理程序安装git

安装Node.js

Node.js官方地址:https://nodejs.org/en/download/

Linux使用源码编译安装时会出现gcc版本过低的情况,找不到gmp.h文件

GCC安装过程中踩到的坑会在另一篇文章中介绍

或者使用yum apt等包管理软件安装nodejs

安装Hexo

1
npm install hexo-cli -g

安装后检验版本

1
hexo -v

验证成功后开始初始化

1
2
3
4
mkdir hexo
cd hexo
hexo init
npm install

安装完成后本地测试hexo

1
2
hexo generate		//生成静态文件 也可以用 hexo g简写
hexo server //可以用hexo s简写

在浏览器输入localhost:4000即可看到hexo页面

Hexo配置

在Hexo文件夹下_config.yml是hexo的相关配置文件

包含页面的相关内容

部署Hexo到服务器

有一部分喜欢将hexo部署到github,基本大同小异。因为我喜欢自己动手,毕竟自己的东西放在自己的服务器上还是比较有意思的,所以就部署在自己的服务器上。

在服务器上安装git

和在本地安装git的方法一样,centos直接用yum install git安装即可

搭建git仓库

建立git用户

1
2
3
su
useradd git
passwd git

切换到git 创建相关文件夹

1
2
3
4
5
6
7
8
9
su git
cd
mkdir hexo
mkdir hexo.git
mkdir temp
chmod 777 hexo
chmod 777 temp
cd hexo.git
git init --bare //此时仓库创建完毕,ls可以看到相关文件以及创建

我们需要添加post-receive脚本用来处理上传的文件,添加并编辑post-receive

1
vim /home/git/hexo.git/hooks/post-receive
1
2
3
4
5
6
7
8
9
#!/bin/sh
GIT_REPO=/home/git/hexo.git //git仓库目录
TMP_GIT_CLONE=/home/git/temp //Temp目录
PUBLIC_WWW=/home/git/hexo //hexo页面的根目录

rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}
cp -rf ${TMP_GIT_CLONE} ${PUBLIC_WWW}

给post-receive添加执行权限

1
chmod +x /home/git/hexo.git/hooks/post-receive

此时仓库的部署就完成了

可以在本地测试仓库是否创建完成

1
git clone git@server:/home/git/hexo.git

如果生成一个空文件夹说明仓库建立完成,可以执行后面的操作

部署Hexo到服务器

安装hexo deploy插件

1
npm install hexo-deployer-git --save

在_config.yml中添加配置

1
2
3
4
deploy:
type: git
repo: git@server:/home/git/hexo.git //server改为服务器地址
branch: master

注意这里要严格按照格式输入,不然会出很奇怪的bug。在:后面要有一个空格再输入内容

然后使用deploy上传到服务器

1
hexo deploy