Apache 从 Perl CGI 脚本的脚本返回格式错误的标头

Posted

技术标签:

【中文标题】Apache 从 Perl CGI 脚本的脚本返回格式错误的标头【英文标题】:Apache returning malformed header from script for Perl CGI script 【发布时间】:2021-06-09 06:38:40 【问题描述】:

我在 Apache httpd 服务器上运行 perl 脚本,并且间歇性地收到 500 Internal Server Error。

当我检查错误日志时,我看到以下错误:

Mon Feb 22 15:04:25 2021] [error] [client xxx.xxx.xx.xx ] malformed header from script. Bad header=Can I override this?: test.cgi

谁能告诉我可能出了什么问题?

【问题讨论】:

交叉发布到 /r/perl reddit.com/r/perl/comments/m2mbve/… 【参考方案1】:

CGI 程序应该打印到STDOUT 的第一个文本是CGI 标头(可能包括Content-type:)。

似乎在某些情况下,您的程序会打印字符串“我可以覆盖这个吗?”在那些标题之前。 Web 服务器尝试将该字符串解析为标头,但失败并引发错误。

查看您的代码,找出它打印该字符串的原因并阻止它这样做或确保首先打印正确的标题。

没有看到您的代码,很难获得更多帮助。

【讨论】:

以上是关于Apache 从 Perl CGI 脚本的脚本返回格式错误的标头的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Apache 2 以运行 Perl CGI 脚本?

分析超时的 Perl CGI 脚本

Apache 未在包含的 perl 脚本中执行“do”包含函数

Perl cgi 脚本无法读取与其父目录具有相同权限的目录

如何从命令行测试Perl CGI脚本的文件上传?

Perl Apache:Perl 脚本显示为纯文本