一:前言
发现博客部署到github上访问非常慢,于是将它部署到自己的服务器上。
二:安装
2.1配置
2.1.1 服务器配置
centos7服务器,已经安装bt面板和lamp环境
2.1.2本机配置
win10,已经部署好hexo至github
2.2安装配置git
2.2.1安装git
1 | yum install git |
- 检查安装信息:
git --version
2.2.2创建git用户
1 | adduser git |
2.2.3配置git用户
1 | chmod 740 /etc/sudoers |
找到以下内容
1 | ## Allow root to run any commands anywhere |
在下面添加一行
1 | git ALL=(ALL) ALL |
保存退出后改回权限:chmod 400 /etc/sudoers
2.2.4打开git服务器的rsa认证
vim /etc/ssh/sshd_config
在sshd_config中开启以下几项(若没有请自行添加没有项):
1 | RSAAuthentication yes |
2.2.5 设置git用户的密码
1 | #需要root权限 |
2.2.6 配置ssh
切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
1 | su git |
- 然后就可以在本机端执行ssh 命令
ssh -v git@SERVER_IP
测试是否可以免密登录 至此,Git用户添加完成
如果成功最后会显示 Welcome to xxx
,如若不行,请重新配置公钥再重试一次
2.3创建git仓库
执行命令:sudo git init --bare hexo.git
使用–bare 参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。
改变 /home/git/hexo.git 目录的拥有者为git用户:sudo chown -R git:git hexo.git
也可以 git clonegit@YOUR_SERVER_IP:/home/git/hexo.git
看一下能不能把空仓库克隆下来,如果可以说明交互正常。
2.4配置钩子
有钩子可以在gitpull后处理文件
在 hexo.git/hooks
目录下新建一个 post-receive
文件,进入cd /home/git/hexo.git/hooks/
,编辑这个文件vim post-receive
在 post-receive
文件中写入如下内容:
1 | #!/bin/bash |
记住要改变网站所在目录的权限为777(是之有写入权利)
设置这个文件的可执行权限:
chmod +x post-receive
注意,
/www/wwwroot/hexo
要换成你自己的部署目录,正如上文所说,我是的配置目录是/www/wwwroot/hexo
。其中/home/git/hexo.git
是git仓库的位置。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。
三.在本机上配置
搭建好后,修改hexo根目录下的_config.yml
1 | # Deployment |
其中YOUR_SERVER_IP
换成你的服务器ip或域名,/home/git/hexo.git
换成你的git仓库地址
最后 hexo clean && hexo g && hexo d
看一下有没有部署到服务器上