我在Apache 2.2.31内的mod_php(PHP 5.3)中运行了一个PHP脚本,该脚本正在发送假标头。我需要对此进行调试,并希望捕获整个输出(标头以及Apache从mod_php接收的所有内容),以将发生错误的情况与未发生错误的情况进行比较。 Apache的LogLevel debug
没有帮助。我先这样尝试过:
ob_start();
... PHP code ...
$b = ob_get_clean();
$f=fopen("/tmp/foo","w");
fwrite($f,$b);
$o=fopen("php://output","w");
fwrite($o,$b);
但这不起作用。它不会捕获标头,并且第二个fwrite
似乎不会将缓冲的输出发送到Apache。我想拥有的功能是能够简单地存储Apache和mod_php之间的整个通信的副本(最好是双向通信,但从mod_php到Apache更为重要),而无需重新编码,重新格式化,截断或其他更改,而不会打扰否则将执行PHP脚本。
此调查是由Apache的error.log中的条目触发的,如下所示:
... malformed header from script. Bad header=\tcharset=iso-8859-1 ...
我很好地猜测什么脚本做错了,但是我不知道为什么和哪里。