无法在 Apache 2.4 Oracle Linux 8.6 php 8 上获取 dumpio

无法在 Apache 2.4 Oracle Linux 8.6 php 8 上获取 dumpio

我无法得到杜皮奥记录 POST 请求数据。

httpd.conf:

...
Include /etc/httpd/conf/httpd-le-ssl.conf
...

其中没有 LogLevel 或 dumpio 相关的内容。

httpd-le-ssl.conf:

<virtualHost *:443>
    ...
    <IfModule dumpio_module>
        ErrorLog "logs/dumpio_log"
        <IfModule log_config_module>
            LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
        </IfModule>    
        DumpIOInput On
        DumpIOOutput On
        LogLevel dumpio:trace7
    </IfModule>
</virtualHost>

(我没有处理端口 80 上的 HTTP,所有内容都通过 301 重定向到 443)

我做到了:

setenforce Permissive (以防 SElinux 阻碍某些事情)

apachectl configtest (语法正确)

apachectl restart

httpd —M |grep -E "dumpio|log_config"(均已加载)

现在,提交邮政使用<form methode="POST">,唯一记录的内容是:

/var/log/httpd/访问日志:

<ip> - - [<date time>] "POST /form.php HTTP/2.0" 200 - "<server url>" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"

/var/log/httpd/error_log但没有详细数据。具体来说, 中和 中都没有任何相关内容logs/dumpio_log。后者文件已创建但包含 0 个字节。

我错过了什么?

答案1

mod_dumpio 指令仅在服务器配置上下文中有效,而不是像您的示例中的虚拟主机中有效。

此处在“上下文”下描述了每个指令的描述: https://httpd.apache.org/docs/2.4/mod/mod_dumpio.html

答案2

另外还有两件事丹尼尔的回答正确地说,它必须在服务器上下文中打开,而不是在虚拟主机上下文中,我需要这样做才能开始mod_dumpio工作:

  1. 检查没有其他 LogLevels 覆盖LogLevel dumpio:trace7。需要检查的地方包括(例如 Certbot 的)以及 Apache 的(在 中/etc/httpd/conf.d/ssl.conf)logs/ssl_error_log,其中可能LogLevel warn需要注释掉。
  2. 检查您是否正在查看正确的日志文件 - 在我的例子中,Apache SSL conf 文件导致 mod_dumpio 记录到/var/log/httpd/ssl_error_log而不是/var/log/httpd/error_log

相关内容