背景
最近折腾博客发现FTP插件上传发布网站还是比较慢,而且FTP传这么多文件经常超时导致hexo部署失败。所以又开始折腾新的部署方式了。
准备
hexo git 插件
首先是hexo官方网站关于git插件的介绍: git-deploy
cpanel git repo部署
我使用的主机厂商控制台是cpanel,刚好cpanel附带git version 插件支持自动化部署网站,相应的介绍页面:
guide-to-git-how-to-set-up-deployment
从图上可以看到,这个插件支持两种部署方式,一种是推送代码,用户电脑推送更新到cpanel管理的git仓库,然后就会自动部署了;另一种是拉取代码,用户推送代码到远程仓库,cpanel拉取远程仓库的代码,然后手工操作部署。当然是用推送方式部署更好啦。
当然要实现自动部署肯定还需要别的步骤,比如这个.cpanel.yml
,这个文件定义了部署之后的操作:
使用这个插件建立能自动部署的私有仓库还必须有shell访问权限guide-to-git-set-up-access-to-private-repositories:
实践
首先当然是需要有shell权限,这个需要联系主机商提供,我这是找了一周多才帮我处理的:
然后是在cpanel控制台建立git私有仓库:
在hexo目录使用npm 安装hexo git部署插件:npm install hexo-deployer-git --save
并进行插件配置:
编写.cpanel.yml
定制自动部署操作:
这里有些小坑,我们需要调整hexo配置文件保证我们的.cpanel.yml
能正常上传,默认git提交不会提交隐藏文件:
同时拷贝一份该文件到实际的git提交目录:
好了,现在测试部署吧,使用hexo clean
和hexo g -d
命令清理文件并部署,测试如下:
打开cpanel控制台,可以看到确实自动部署了:
总结
使用git插件通过ssh部署果然方便多了,也没有卡顿了,终于可以告别ftp的烦恼了。