Как отобразить ошибки cgi-bin вместо 500 в Apache?

Я заинтересован в получении ошибок из скриптов cgi-bin внутри браузера, таких как ошибки PHP.

Сценарий cgi может быть Perl, Python, Ruby, двоичным или что-то еще. Меня не интересует конкретное решение - я ищу что-то, что должно работать с любым сценарием.

Я хочу использовать на сервере разработки / тестирования не в производстве. Я знаю, что в производстве вы не должны отображать error_log для пользователя.

Я ищу скрипт для замены ErrorDocument внутри Apache. У меня был один в прошлом, но я потерял его.

4 ответа

В основном, как говорит радиус, ловите и отображайте ошибку, а не позволяйте ей пройти. В Perl, см. Модуль Carp: http://search.cpan.org/~nwclark/perl-5.8.9/lib/Carp.pm

В прошлом я размещал небольшой скрипт на своем сервере разработки, который привязывал файл журнала к браузеру. Он не заменил ошибку 500, но я полагаю, вы могли бы перенаправить Apache на такой скрипт при обнаружении ошибки 500.

Я думаю, что использование оболочки может сделать это. Напишите скрипт, который всегда возвращает 0, чтобы apache никогда не делал ошибку 500 для него. В этом сценарии запустите истинный сценарий для выполнения и перехватите STDOUT и STDERR, чтобы иметь возможность отправить их обратно клиенту.

Не совсем то, что вы спросили, а как насчет того, чтобы просто выставлять логи через псевдоним?

Alias /var/log/httpd /apache-logs
<Directory /var/log/httpd>
  # access control options, fancy indexing options, etc
</Directoy>
Другие вопросы по тегам