【问题标题】:Odd cgi behaviour奇怪的 cgi 行为
【发布时间】:2011-07-01 05:36:20
【问题描述】:

我在 apache 下运行的 perl cgi 脚本出现了一些非常烦人的行为。 我在简单的打印语句末尾添加了引用信息,这让我发疯了。

[Sun Feb 20 21:34:47 2011] [error] [client xx] ruid: 48, referer: http://www.x.com/
[Sun Feb 20 21:34:47 2011] [error] [client xx] euid: 48, referer: http://www.x.com/
[Sun Feb 20 21:34:47 2011] [error] [client xx] test, referer: http://www.x.com/
[Sun Feb 20 21:34:47 2011] [error] [client xx] Premature end of script headers: test.cgi, referer: http://www.x.com/

这似乎只在通过从另一个页面导航到达 url 时发生(因此有一个引用者是的)。上面的 apache 日志输出是使用下面非常简单的 depo 脚本生成的:

#!/usr/bin/perl -w

use strict;
use warnings;

use CGI;

my $q = CGI->new;

print STDERR "ruid: $<\n";
print STDERR "euid: $>\n";
print STDERR "test\n";

有人见过这个吗?感觉就像我需要关闭一个 apache 设置。

谢谢 马特

【问题讨论】:

    标签: perl apache logging cgi


    【解决方案1】:

    查看您的 apache 配置文件(httpd.conf 和朋友)并找到错误日志使用的 CustomLog 指令,以查看它使用哪个 LogFormat,然后修改该 LogFormat(或创建一个新的)从要包含在日志消息中的字段列表中删除%{Referer}。 (当然,不要忘记在更改后重新加载 apache 配置。)

    【讨论】:

    • 似乎只有我的 access_log 使用了 CustomLog 指令。
    • 我尝试将 LogFormat "%h %l %u %t \"%r\" %&gt;s %b" test CustomLog logs/error_log test 添加到我的 httpd.conf 中,但现在我的错误日志中多了一行,看起来像是访问日志条目。原始奇怪的错误日志条目没有改变我在文档中看到无法更改 error_log 格式,尽管我不记得在其他服务器上有过这个引用信息...
    • @Matt:我的立场是正确的;我刚刚仔细检查了文档,发现相同:“无法通过添加或删除信息来自定义错误日志。”您可能可以使用 apache 模块连接到日志记录阶段以禁止引用日志记录,但是,否则,看起来无法做到这一点。
    • 好像是这样。还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 2021-06-08
    • 2015-07-20
    • 2010-10-03
    • 2021-07-12
    • 2013-10-04
    相关资源
    最近更新 更多