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
网友评论