Hexo博客部署到服务器
服务器环境配置
我使用的是root
执行,因为服务器只有我一个人用,不会出什么问题
安装git和nginx
请查看CentOS7 + nodejs + nginx + MySQL搭建服务器
配置ssh
执行:
cat ~/.ssh/id_rsa.pub
把拿到的公钥添加到~/.ssh/authorized_keys
中
如果你之前没有生成过公钥,则可能就没有 id_rsa.pub 文件,查看这里
初始化仓库
cd /home/jake
sudo git init --bare m.git
使用 --bare
参数,Git
就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。
配置git hooks
我们这里要使用的是 post-receive
的 hook,这个 hook 会在整个 git 操作过程完结以后被运行。
在 m.git/hooks
目录下新建一个 post-receive
文件:
cd /home/jake/m.git/hooks
vim post-receive
在 post-receive
文件中写入如下内容:
#!/bin/sh
git --work-tree=/home/jake/m --git-dir=/home/jake/m.git checkout -f
/home/jake/m
要换成你自己的部署目录。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。
设置这个文件的可执行权限:
chmod +x post-receive
Nginx配置
我用的是lnmp(如果是直接安装的Nginx,配置文件为/etc/nginx/nginx.conf
)
cd /usr/local/nginx/conf/vhost
vim m.conf
输入下面配置
1 | server |
测试nginx配置是否可以用
nginx -t
如果返回successful
,就表示成功了。重启Nginx
service nginx restart
本地配置
修改博客根目录下_config.yml
文件
1 | deploy: |
然后执行:
hexo new 测试.md
hexo d -g
访问刚刚的配置的域名就可以访问自己的网站了