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