Как я могу захватить вывод mod_php с Apache 2.2 - PullRequest
0 голосов
/ 15 мая 2019

У меня есть скрипт PHP, работающий в mod_php (PHP 5.3) внутри Apache 2.2.31, который отправляет поддельные заголовки. Мне нужно отладить это, и я хотел захватить весь вывод (заголовки и все, все, что 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. Я хотел бы иметь возможность просто сохранять копию всего сообщения (желательно в обоих направлениях, но от mod_php до Apache более важно) между Apache и mod_php без какого-либо перекодирования, переформатирования, усечения или других изменений и без нарушения в противном случае выполнение PHP-скрипта.

Это расследование было инициировано записями в файле Apache error.log, например:

... malformed header from script. Bad header=\tcharset=iso-8859-1 ...

У меня есть хорошее предположение что скрипт делает неправильно, но я не знаю почему и где .

...