如何在 Apache 中显示 cgi-bin 错误而不是 500?

如何在 Apache 中显示 cgi-bin 错误而不是 500?

我感兴趣的是获取浏览器内部 cgi-bin 脚本的错误,例如 PHP 错误。

cgi 脚本可以是 Perl、Python、Ruby、二进制或其他脚本。我对特定解决方案不感兴趣 - 我正在寻找可以与任何脚本配合使用的解决方案。

我想在非生产环境中的开发/测试服务器上使用它。我知道在生产环境中不应向用户显示 error_log。

我正在寻找一个脚本来替换 Apache 中的 ErrorDocument。我以前有一个,但我把它弄丢了。

答案1

基本上就像 radius 所说的那样,捕获并显示错误,而不是让它通过。在 perl 中,请参阅 Carp 模块:http://search.cpan.org/~nwclark/perl-5.8.9/lib/Carp.pm

答案2

我认为使用包装器可以做到这一点。编写一个始终返回 0 的脚本,这样 apache 就永远不会出现错误 500。在此脚本中启动要执行的 true 脚本并捕获 STDOUT 和 STDERR,以便能够将它们发送回客户端。

答案3

这不完全是您所问的,但是如何通过别名来公开日志?

Alias /var/log/httpd /apache-logs
<Directory /var/log/httpd>
  # access control options, fancy indexing options, etc
</Directoy>

答案4

过去,我曾在开发服务器上放置一个小脚本,将日志文件跟踪到浏览器。它并没有取代 500 错误,但我想当检测到 500 错误时,你可以让 Apache 重定向到这样的脚本。

相关内容