Apache CGI - 非零退出代码

时间:2014-01-23 05:57:06

标签: apache cgi

我有一个CGI脚本,通常可以正常工作。

但是,在某些情况下,它可能会失败,从而导致退出代码非零。 有时,它会在失败之前输出标题等。

例如,输出可能是:

Content-Type: text/html; charset=utf-8

<empty body>

然后使用程序退出代码123。

目前,Apache将此视为HTTP 200,并乐意将空白页面返回给用户。

有没有办法让Apache将这样的程序失败视为错误?

我实际上曾认为在这种情况下会返回HTTP 500,但显然我错了(或者配置错误)。

1 个答案:

答案 0 :(得分:1)

没有办法让mod_cgi / mod_cgid缓冲状态行/ headers / body以确保CGI最终成功退出。即使是一个空的身体,由于标题终止后立即写入状态行,所以为时已晚。

除了Apache的增强之外,你的CGI必须缓冲它自己的标准输出,或者你必须将它包装在缓冲所有标准输出并运行CGI完成的东西中。