1.安装hexo

参考官方安装文档https://hexo.io/zh-cn/docs/

2.选择一套自己喜欢的主题

github搜索hexo themes

或者在hexo的主题官网上查看

3.开始写作

hexo new article-name

4.搭建git服务器

#创建git用户
useradd git
#给git用户设置密码,或者在git用户的.ssh目录的authorized_keys文件里面添加自己的公钥
passwd git
#切换到git用户
su git
#创建一个文件夹存放git的代码
cd ~;mkdir git/project/blog.git
#初始化git仓库
cd ~/git/project/blog.git
git init --bare
#回到本地仓库
git init
git add .
git commit -m 'initial commit'
#这里的gitserver就是你的git服务器的ip或者域名
git remote add origin git@gitserver:~/git/project/blog.git
git push -u origin master

5.部署网站

#在服务器选择一个放置网站的目录,假设这个目录为/var/www/blog
mkdir -p /var/www/blog
cd /var/www/blog
git clone ~/git/project/blog.git
#安装npm的依赖
npm install
#生成静态文件
hexo generate

6.自动部署

git 有个功能叫做hook,也就是说在我们提交代码的时候会触发一些操作,这就是hook Git的挂钩(Hook)主要包含:

applypatch-msg post-update pre-rebase commit-msg pre-applypatch update post-commit pre-commit post-receive prepare-commit-msg

我们要用到的是post-update这个hook 进入到我们的git服务器的文件夹~/git/project/blog.git 进入到hook文件夹 使用ls命令可以看到许多hook脚本的sample

hooks]$ ls
applypatch-msg.sample  pre-applypatch.sample      pre-rebase.sample
commit-msg.sample      pre-commit.sample          update.sample           prepare-commit-msg.sample
post-update.sample     pre-push.sample

新建一个post-update脚本 输入以下命令

#!/bin/sh
cd /var/www/blog
env -i git pull
hexo generate

保存退出,chmod +x post-receive.

7.配置nginx

编辑nginx的配置文件/etc/nginx/conf.d/default.conf

server {

​ server_name your_server_name;

​ #charset koi8-r;

​ #access_log /var/log/nginx/host.access.log main;

​ location / {

​ root /var/www/blog/public;

这里主要修改server_name为你的域名 修改root目录为hexo静态文件的目录,以上面目录举例/var/www/blog/public 要注意nginx需要有该目录的文件读取权限

8.配置nginx ssl

安装certbot工具帮我们签发证书

yum install certbot python2-certbot-nginx
#certbot自动配置nginx证书,按照提示配置即可
certbot --nginx
#cron job 自动更新证书
systemctl start crond
crontab -e
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
crontab -l