PHP испускает 500 на ошибках - где это документировано?

В этом вопросе OP упоминает, что PHP автоматически выбрасывает ошибку 500, когда error_reporting выключен, и XDebug меняет это поведение.

Мне было любопытно, поскольку я никогда не слышал о том, что PHP автоматически испускает 500 штук раньше. Согласно различным цитатам и ответам на SO и в других местах, по-видимому, поведение по умолчанию PHP должно бросать заголовок 500 Internal Server Error, если для параметра display_errors установлено значение false.

Однако я не могу найти что-либо официальное по этому поводу. Страницы руководства на display_errors и error_reporting ничего не говорят.

Кто-нибудь знает хороший источник в документах PHP, которые говорят об этом?

Ответы

Ответ 1

Не уверен, но это могло быть добавлено в PHP 5.2.4:

  • Изменен обработчик ошибок для отправки HTTP 500 вместо пустой страницы на ошибках PHP. (Дмитрий, Андрей Нигматулин)

Здесь также обсуждается список который может быть связан:

Цитирование:

Текущее время в большинстве PHP-установок используется параметр 'display_error = 0'. Этот параметр скрывает ошибки от пользователя, но может отправить ему только пустую страницу.

Предлагаемый патч отправляет ответ HTTP 500 на ошибки вместо пустых страниц. Страницы, которые уже что-то писали, не влияют.

Любые возражения или дополнения?

и предлагаемое решение/патч, как представляется, показано здесь: