最近麻烦事一大堆,先是多说宣布关闭服务,又是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页面了;