В этом вопросе OP упоминает, что PHP автоматически бросает ошибку 500, когда error_reporting
выключен, и XDebug меняет это поведение.
Мне было любопытно, поскольку я никогда не слышал о том, что PHP автоматически испускает 500 штук раньше. Согласно различным цитатам и ответам на SO и в других местах, по-видимому, по умолчанию поведение PHP по умолчанию вызывает заголовок 500 Internal Server Error
если для display_errors
установлено значение false.
Однако я не могу найти что-либо официальное по этому поводу. На страницах руководства на display_errors и error_reporting ничего не говорится.
Кто-нибудь знает хороший источник в документах PHP, которые говорят об этом?
Не уверен, но это, возможно, было добавлено в PHP 5.2.4 :
- Изменен обработчик ошибок для отправки HTTP 500 вместо пустой страницы на ошибках PHP. (Дмитрий, Андрей Нигматулин)
Существует также такая дискуссия о внутреннем списке, который может быть связан:
Цитирование:
Текущее время в большинстве PHP-установок используется параметр 'display_error = 0'. Этот параметр скрывает ошибки пользователя, но может отправить ему только пустую страницу.
Предлагаемый патч отправляет ответ HTTP 500 на ошибки вместо пустых страниц. Страницы, которые уже что-то писали, не затрагивают.
Любые возражения или дополнения?
и предлагаемое решение / патч, как представляется, показано здесь: