在自己的服务器上搭建hexo blog
在本地生成ssh秘钥
ssh-keygen -t rsa -b 4096 -C “i0gan@qq.com“
一路回车,生成的公钥保存在 ~/.ssh/id_rsa.pub
本教程基于会在github上搭建移植到自己的服务器中
必备:
nginx
git
nodejs
添加用户
1 2
| useradd -m git passwd git
|
vim /etc/sudoers
找到root ALL=(ALL) ALL,在它下方加入一行
给git用户添加ssh密钥
1 2 3 4 5 6
| su - git mkdir -p ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh vim ~/.ssh/authorized_keys #将本地生成ssh公钥密钥(~/.ssh/id_rsa.pub) 粘贴进去
|
创建git仓库并使用git-hooks实现自动部署
1 2 3 4 5
| sudo mkdir -p /var/repo #新建目录,这是git仓库的位置 sudo mkdir pp /var/www/hexo cd /var/repo #转到git仓库的文件夹 sudo git init --bare blog.git #创建一个名叫blog的仓库 sudo vim /var/repo/blog.git/hooks/post-update
|
post-update
的内如如下:
1 2
| #!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
|
给post-update授权:
1 2 3 4
| cd /var/repo/blog.git/hooks/ sudo chown -R git:git /var/repo/ sudo chown -R git:git /var/www/hexo sudo chmod +x post-update #赋予其可执行权限
|
配置nginx
1 2
| cd /etc/nginx/conf.d sudo vim blog.conf
|
blog.conf
的内如如下:
1 2 3 4 5 6
| server { listen 80 default_server; listen [::] default_server; server_name i0gan.pwnsky.com; root /var/www/hexo; }
|
检查Nginx语法并重载nginx:
1 2
| nginx -t nginx -s reload
|
修改git用户的默认shell环境
1 2 3
| vim /etc/passwd #修改最后一行 #将/bin/bash修改为/usr/bin/git-shell
|
本地hexo 配置
1 2 3 4 5 6 7 8 9
| vim _config.yml
# 找到deploy配置部分 # Deployment ## Docs: https://hexo.io/docs/deployment.html deploy: type: git repo: git@xxx.xx.xxx.xxx:/var/repo/blog.git # IP填写自己服务器的IP即可 branch: master
|