【发布时间】:2019-08-06 06:06:26
【问题描述】:
我的网站使用 iframe 调用一个小型 perl 程序,该程序(使用用户的 IP 地址)返回相关的国家代码。这多年来一直运行良好。最近服务器一直在报...
[2019 年 3 月 13 日星期三 19:16:16] [错误] [客户端 66.102.6.210] 脚本头过早结束:VL.PL,引用者:https://www.makeyourwill.com/
VL.PL 是返回访问者位置的 perl 程序。
问题是我无法重现错误。我尝试过使用 Chrome、Edge、Safari、Firefox 和 IE。我尝试过使用广告拦截器。我想不出任何其他可能影响它的东西。
我没有包含任何代码,因为我认为它不相关,但如果您觉得它有帮助,我显然可以。
【问题讨论】:
-
这意味着程序在将标头返回到 Web 服务器之前就死了。除非它被信号杀死,否则它会向它的 STDERR 输出一些东西。这通常由 Web 服务器记录。如果没有,请重新启用它。
-
谢谢。所以如果我包括: open STDERR, '>&STDOUT';在程序中,错误将转到我可以在服务器上找到的文件?你知道那会在哪里吗?
-
哦,不。如果你这样做(足够快),错误将作为响应发送,这很糟糕。不要对脚本进行任何更改。只需检查网络服务器的错误日志
-
我从错误日志中得到的只是“脚本头过早结束”。
-
最可能的两种情况是:您的 Web 服务器没有记录 CGI 程序的 STDERR(大多数情况下默认情况下),或者 CGI 程序被信号杀死。两者都可以通过将脚本替换为执行额外日志记录的包装器来诊断。