HEXO,我来了!

Hexo Mar 28, 2017

最近麻烦事一大堆,先是多说宣布关闭服务,又是SSL证书和ECS快到期了,所以要计划在4月1日换个数据中心的ECS,然后使用HEXO作为我的博客程序,Disqus作为评论系统;就去研究了下HEXO的相关,记录经验;

当然我也不会放弃 GHOST 的,因为这是我从虚拟主机过渡到云服务器的一个见证;

环境

电脑是Windows,服务端是Debian;

安装HEXO

注意:HEXO和NodeJS是装到你本地电脑上的;

NodeJS的安装这里不再赘述了,我的博客里已经写过两篇包含NodeJS安装的文章了;

HEXO的安装我也不想再赘述了,因为 HEXO官方的教程 已经很详细了,所以我没必要再写了;

部署HEXO到服务器

我们这边使用Git的部署方法;

注意:有些命令是需要root权限的,请自行 su 或 sudo

服务器安装Nginx和Git

apt-get install nginx git-core

然后新建名为Git的无密码用户

adduser git

然后给权限,输入下面命令打开配置文件(前提是安装了sudo)

visudo

root ALL=(ALL:ALL) ALL

下面一行紧跟下面字符后保存退出即可

git ALL=(ALL:ALL) ALL
上传SSH公钥

先切换到git用户

su git

在 /home/git 目录下新建 .ssh 目录

cd /home/git && mkdir .ssh

然后在 .ssh 目录里新建一个名为 authorized_keys 的文件,并且将你电脑上生成的ssh公钥复制到这个文件里面,保存退出即可;

cd .ssh && vi authorized_keys
创建Git仓库

进入到 /home/git 目录,输入下面命令创建名为 hexo 的仓库

git init --bare hexo.git
Git Hooks配置
vi /home/git/hexo.git/hooks/post-receive

在里面输入(路径自行修改)

#!/bin/bash
GIT_REPO=/home/git/hexo.git
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/var/www
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

赋予可执行权限

chmod +x post-receive

重启Nginx

/etc/init.d/nginx restart

安装git模块

npm install hexo-deployer-git --save

配置HEXO

打开hexo的配置文件 _config.yml ,找到 deploy 项,修改如下;(注意写对服务器IP地址)

deploy:
    type: git
    repo: git@IP:hexo.git

然后到hexo安装目录下执行

hexo g                # 生成静态页面

hexo d                # 部署静态页面到服务器

进行部署静态页面到你的服务器的 /var/www 目录里,如果成功在浏览器打开你服务器ip地址就可以看到hexo页面了;