重新部署hexo
文章目录
【注意】最后更新于 May 10, 2020,文中内容可能已过时,请谨慎使用。
问题所在:
改用了自己服务器搭建hexo后,也实现了gitalk的初始化,但是要git同步以及每次都要重新部署,制作很多定时任务,有时还会执行失败,导致还要手动的去修改和部署,并没有实现自动的部署,还是比较鸡肋,所以使用新的解决方案,来实现真正的自动化.
准备工作:
- 前几篇文章为了安全问题把仓库改为了私有,现在重新使用
travisCI
平台,使用token
变量,也就可以防止token
的泄漏,但是由于git中有版本库,所以不打算重新改为公共库,然后删除分支重新push
,决定保持私有 - 放弃
hexo
的server
和deploy
服务,改为nginx
作为应用服务器,服务器只保留generate
后的静态文件,配置更加灵活,可以直接映射80端口,也可以使用反向代理映射到不同的端口 - 使用
github
提供的hooks
功能,监测github
仓库的提交记录,如果提交了修改则服务器自动pull
每次的更改,以实现真正的自动部署 - 保留
github
的hexo
分支,继续多端,多设备push
,更专注与文章的编写
开始
-
关于
travis
的使用及变量的添加,前面的文章有说过,此处不做重复,说一下将gitalk
初始化需要的token
加入到配置文件的变量中,并使用travis
自动执行初始化首先将根下的
_congif.yml
设置deploy
仓库将
gitalk
仓库的token
加入到travisci
的变量中,修改gitalk.init.js
最后,修改根下的
.travis.yml
-
修改
package.json
文件,不再使用npm run
的方式,将script
里的代码去掉即可,或者不改动,不使用npm run
命令启动,进入服务器开始执行一些配置配置
nginx
将80端口映射到git
仓库的master
分支的public
目录下,如果使用nginx
访问不了,首先重启nginx
使配置生效,如果报404,可能使路径设置有问题,如果报403,则是权限问题,可以修改目录的组权限,chown -R nginx:nginx dirname
,具体情况可以百度,有很多的解决方案,如果有问题解决不了,不要急躁而像无头苍蝇一样没有方向目标,多想想流程,过程中发生了什么,比如nginx
的启动过程,为什么报错,权限分为几种,什么是所有者和用户组,多带着思考去看待问题,而不是直接去搜索引擎,搜索引擎也只是一个参考,不应该作为一个依赖的东西,不做思考没有什么效果,就算解决了也是搜索引擎解决的,对自己的提高和独立思考能力不太友好 -
这篇先说这么多,下篇开始使用
github
的hooks
使服务器自动拉取仓库的变动代码(主要是到这里我还没有实现,需要自己去部署一遍)