之前提到过,作为静态页面的本站是由 GitHub Pages 提供托管服务的。这样做的好处很明显,可以节省自己维护的成本,但劣势也同样存在。
今天偶然发现,百度无论如何都无法收录我的新版站点,经调查,乃是 GitHub 阻止百度爬虫之故。为了避免访问量的损失,以及获得自己个性化配置站点功能的条件,我决定把网站放到自己一台独立的机器上。虽然会加速消耗一定的流量,但好在基本都是静态页面,而且有 CDN 的帮助,应该能减少相当一部分负担。此外,由于换了 DNS 服务,原来的提供的奇怪 SSL 干脆放弃,直接申请一个独立的安在服务器上,目前感觉还不错。
自然,我们要使用优雅的方式(虽然还是很蠢),Github Webhooks 的功能得以使用。除了 Github 的一个奇怪之处(或许以后有机会再介绍),基本上整个流程写下来还是顺利的。唯独困扰我许久的问题竟然是一个权限问题,暂且在此记录下来。
我喜欢 Python,所以用它来写 CGI,中间打算调用一下 git pull
,然而每次都报错。通过 os.system()
得到的退出码是 256。一般情况,退出码的范围是 0~255,这个 256 就很奇怪,后来发现这是由 Python 特别转换过得到的,对应的实际退出码是 1。这样便明确了错误原因是没有权限。我们(我当时不)知道,网页服务器的权限是很低的,所以要把相应要处理的文件的组设置为 www-data
并给足权限才可以使用。