Hexo 博客是一款基于 Node.js 的静态博客框架。
安装 Hexo
首先确保本地已经安装Node.js。
安装并创建 hexo 博客
bash
cd ~
npm install hexo-cli -g
hexo init blog
cd blog
npm install
安装发布插件
bash
npm install hexo-deployer-git --save
服务器创建静态博客存储 Git 仓库
示例服务器环境:
- Centos 6.8
- Git 1.7.1
创建 git 用户
bash
sudo useradd git
创建仓库并附权限
bash
sudo git init --bare /home/git/hexo-server.git
sudo chown -R git:git /home/git/hexo-server.git
给 git 用户附 sudo 权限
bash
visudo
在文件最后一行加上
vim
git ALL=(ALL) NOPASSWD: ALL
给 root 用户创建 ssh-key
bash
sudo mkdir ~/.ssh
sudo ssh-keygen
给 git 用户创建 ssh-key
bash
sudo mkdir /home/git/.ssh
su git
cd ~
ssh-keygen
多用户免密使用 Git
将多用户的 ssh-key 添加到服务器 git 用户的 authorized_keys
本地:
bash
cat ~/.ssh/id_rsa.pub | ssh root@your_host "cat - >> /home/git/.ssh/authorized_keys"
服务器:
bash
cat ~/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
创建 GitHook
bash
cd /home/git/hexo-server.git/hooks
vim post-receive
创建 post-receive
:
bash
#!/bin/sh
cd /var/www/hexo-server
unset GIT_DIR
sudo git pull origin master
附权限:
bash
chmod +x post-receive
服务器克隆部署仓库
bash
cd /var/www
su git
sudo git clone git@localhost:/home/git/hexo-server.git
nginx 配置(https 协议):
nginx
server {
listen 443 ssl http2;
server_name your_host;
server_tokens off;
ssl_certificate /var/www/ssl/chained.pem;
ssl_dhparam /var/www/ssl/dhparams.pem;
location / {
root /var/www/hexo-server/;
index index.html index.htm;
}
}
server {
listen 80;
server_name your_host;
return 301 https://$host$request_uri;
}
本地 Hexo 配置远程部署仓库
bash
cd ~/blog
vim _config.yml
修改 _config.yml
:
vim
deploy:
type: git
repository: git@your_host:/home/git/hexo-server.git
branch: master
发布博客
bash
hexo generate && hexo deploy
至此可以在实现本地一键发布 Hexo 博客在私有的服务器了。