Меня интересует получение ошибок из скриптов cgi-bin внутри браузера, таких как ошибки PHP.
Скрипт cgi может быть Perl, Python, Ruby, двоичным или чем-то еще. Меня не интересует конкретное решение - я ищу то, что должно работать с любым скриптом.
Я хочу использовать его на сервере разработки / тестирования, а не на производстве. Я знаю, что в процессе производства вы не должны показывать пользователю error_log.
Я ищу сценарий, который будет использоваться для замены ErrorDocument внутри Apache. У меня был один в прошлом, но я его потерял.
В основном, как говорит радиус, ловите и отображайте ошибку, а не пропускайте ее. В perl см. Модуль Carp: http://search.cpan.org/~nwclark/perl-5.8.9/lib/Carp.pm
Раньше я размещал на своем сервере разработки небольшой сценарий, который следил за файлом журнала в браузере. Это не заменило ошибку 500, но я полагаю, что вы могли бы перенаправить Apache на такой скрипт при обнаружении ошибки 500.
Не совсем то, что вы спрашивали, но как насчет того, чтобы просто открыть журналы через псевдоним?
Alias /var/log/httpd /apache-logs
<Directory /var/log/httpd>
# access control options, fancy indexing options, etc
</Directoy>
Я думаю, что это можно сделать с помощью обертки. Напишите сценарий, который всегда возвращает 0, чтобы apache никогда не выдавал для него ошибку 500. В этом сценарии запустите настоящий сценарий для выполнения и перехватите STDOUT и STDERR, чтобы иметь возможность отправить их обратно клиенту.