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