HEXO,我来了!

Node.js
/ 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页面了;

Tags

Weic Ma

没有什么事是一个脑瓜子解决不了的,要是不行就Remove掉你的脑瓜子吧!

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.