hexo博客部署到私有服务器

hexo博客部署到私有服务器

上次搭了个v2ray后发现服务器就这么放着有点浪费,于是打算把之前托管到github,码云的hexo博客部署到服务器上。也就是在本地使用hexo写博客后,使用hexo deploy命令将静态网站push到服务上。

服务器环境准备

确保服务器上安装了webserver 如tomcat, nginx, caddy等,来保证运行hexo生成的静态网站。

git配置

安装git

1
2
yum install -y git
git --version

安装成功之后,配置git用户:

1
adduser git

为了安全起见,我们需要关闭git账号登录shell的权限

1
vim /etc/passwd

在文件最后找到git行,将/bin/bash替换为/usr/bin/git-shell

创建空仓库

1
2
3
4
cd /home/git
mkdir repos
cd repos
git init --bare blog.git

创建网站根目录,之后hexo生成的静态文件会部署到这里

1
2
cd /home/git
mkdir -p projects/blog

本地生成ssh key:

1
ssh-keygen -t rsa -C "你的邮箱"

生成的ssh keyC:\Users\你的用户名\.ssh文件夹下,名为id_rsa.pub

复制id_rsa.pub文件内的内容,将内容加到git用户的authorized_keys文件中

1
2
3
cd /home/git/.ssh
touch authorized_keys
vim authorized_keys

配置hooks钩子,保证收到push请求后执行命令将提交的文件部署到网站根目录下:

1
vim /home/git/repos/blog.git/hooks/post-receive

将下面的脚本复制到文件内:

1
2
#!/bin/sh
git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f

并给git用户添加可执行权限:

1
chmod +x post-receive

网站的根目录也需要给git权限:

1
2
sudo chown -R git:git /home/git/repos/blog.git
sudo chown -R git:git /home/git/projects/blog

hexo配置

修改博客根目录下的_config.yml,将仓库添加到deploy配置中:

1
2
3
4
deploy:
type: git
repo: git@blog.zhuweitung.space:/home/git/repos/blog.git
branch: master

hexo部署测试:

1
2
3
4
hexo clean
hexo g
hexo douban
hexo deploy

hexo提示push成功,再到服务器的网站根目录下看一下是否有文件

1
2
cd /home/git/projects/blog
ll -h

有文件了!到浏览器里输入域名发现博客部署成功了!


hexo博客部署到私有服务器
https://blog.kedr.cc/posts/1827970956/
作者
zhuweitung
发布于
2020年3月27日
许可协议