摘要: 在云主机上搭建一个私有git裸仓库,然后使用nginx作为web服务器,就可以轻松将Hexo博客通过git一键部署到云主机上。
为什么要把Hexo放到服务器上呢?
- 首先,因为Github国内访问实在是有点慢,也不想用CDN加速。
- 码云托管指定域名的服务要花钱,不想花钱。
- 主要还是自己比较喜欢折腾。
- 为什么不用Workpress呢?因为选主题实在是太难了,太难选到心仪的主题,样式自己盖起来也不那么方便。我的Woekpress博客已经打算放弃他了。
0. 开始
我的云主机炒作系统是Ctenos7 为了方便安装了宝塔面板,非常爽!所以我这边就不用安装Nginx了,直接使用就好。
1. 安装Git
安装git:
yum install git
查看yum源仓库Git信息:
yum info git
安装依赖库:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc-c++ perl-ExtUtils-MakeMaker
检查git版本:
git --version
配置git:
1 git config --global user.name "Your Name"
2 git config --global user.email "email@example.com"
3 #查看配置是否生效
4 git config --list
2. 配置Git Hooks
创建Git裸仓库
blog.git作为远程Git仓库,Hexo在本地生成的博客静态文件可以通过push与其同步。
首先cd进某个目录,这里目录随便就好,我这边是进的宝塔创建的项目目录
cd /www/wwwroot
mkdir ~/hexo.git && cd ~/hexo.git
git init --bare
配置Hooks脚本
post-receive脚本将在blog.git仓库接收到push时执行。
vim hexo.git/hooks/post-receive
写入脚本,脚本非常简单,删除原有的**/www/wwwroot/hexo-blog目录,也就是项目部署的根目录,然后从hexo.git**仓库clone新的博客静态文件。
#!/bin/bash
rm -rf /www/wwwroot/hexo-blog
git clone /www/wwwroot/hexo.git /www/wwwroot/hexo-blog
给post-receive脚本执行权限,否则脚本不会执行。
chmod +x blog.git/hooks/post-receive
3. 部署Hexo博客
修改Hexo的_config.yml文件
注意:这里IP替换成自己服务器的公网IP
deploy:
type: git
repo: root@115.52.42.55:hexo.git
部署博客
hexo先生成新的博客静态文件,然后通过git将其同步到云主机的blog.git仓库。
注意:这里推送文件到服务器时需要输入root用户的密码
hexo g -d
4. 配置Nginx
我这边使用的宝塔面板快速创建网站并指定目录就好了,如果没有使用宝塔面板需要安装Nginx并配置就可以了。
参考链接:
到这里就结束了,如果有疑问欢迎留言。