hexo博客部署到云服务器
Hexo博客能通过对markdown文档进行解析,输出静态html网页,易被部署至github,但github服务器在国外,国内访问速度很慢,因此部署在云上,也易于维护
准备工作
- 一台云服务器
- 本地搭建好的hexo blog
- 一个备案好的域名(没有就用ip访问)
云服务器配置
创建git用户
1 | sudo adduser git |
给git用户增加权限(这里可以尝试不加权限试一下,笔者是加了的)
1 | sudo chmod 740 /etc/sudoers |
配置ssh key
1 | su git |
创建一个名为blog的git仓库
1 | su $USER # 切换回原来的账户 |
git用户可以通过ssh连接,进行任何操作。为了安全性,将git用户的活动限制在与Git相关范围,即把git用户的shell改成 git-shell
1 | sudo chsh git -s $(which git-shell) |
配置钩子 GIT HOOKS
1 | vim /var/repo/blog.git/hooks/post-receive |
添加如下:
1 |
|
然后保存退出,并设置权限
1 | chmod +x /var/repo/blog.git/hooks/post-receive |
改变 blog.git 目录的拥有者为 git 用户
1 | sudo chown -R git:git blog.git |
创建静态文件目录且与钩子路径相对应
1 | sudo mkdir /var/www/hexo |
测试是否成功,打开本地终端输入:
1 | git clone git@云服务器ip:/var/repo/blog.git |
当你看到如下,就说明前边已经部署好了
1 | Cloning into 'blog'... |
本地hexo配置
打开hexo博客根目录,编辑_config.yml
文件
修改repository为:
1 | deploy: |
然后hexo clean && hexo g && hexo d
推送到云服务器
云服务器nginx配置
1 | vim /etc/nginx/sites-available/default |
在/etc/nginx/sites-available/single/
下新建一个blog.conf,编辑添加如下内容,并将其中的 ROOT 指令指向 /var/www/hexo
目录(也就是GIT钩子目录)
1 | server { |
最后重启服务,让NGINX生效
1 | sudo nginx -t |
评论