关于自动发布的一些细节
在上一篇文章中简单描述了自动发布的方法,不过在那之后我花了差不多一天的时间来对配置文件修修补补。终于能正常的自动发布了。下面是上一篇文章中存在的问题:
Caddy 无法启动
这里问题挺多的
Caddy 的 http.git 插件的坑
因为我使用的是私库,所以必须使用 ssh 进行连接。可是在启动后出现了这个诡异的错误:invalid port ":sjatsh" after host
在一番熟练的使用搜索引擎后,啥也没有找到。后来在 caddy-git 项目的 Issues 里发现了这个。修改后的配置文件如下:
1 | git { |
目录的权限问题
在 http.git 执行 pull 操作的时候,是以用户 www-data 的身份执行的,而原来配置文件中的path /root/blog/source/_posts/
所指定的目录我是以 root 的身份创建的……解决也很简单:删掉/root/blog
,然后重新创建过一个空的文件夹来操作,具体如下:
1 | rm -rf /root/blog #删掉这个,不要了 |
之后就能正常启动 Caddy 了
then 不能按照预期的方式运行
原来的配置文件中在 then 后加了 hexo g 来让 hexo 重新生成静态文件,通过加上--config custom.yml
参数指定 hexo 的位置,不过并不能运行
后来发现这玩意好像不能这样用,于是在/var/blog 下创建了 update.sh,里面填入hexo g
并且修改 Caddy 的配置文件:
1 | git { |
webhook 返回 405 错误
这里我眼瞎,在 GitHub 设置 webhook 链接的时候少打了个 s。
其他小修改
Caddy 的配置文件
1 | git { |
1 | tls { |
update.sh
1 | chown -R root:root /var/blog/source/_posts #防止出现诡异的错误 |