Конфигурация PHP
2 записи в php.ini диктуют вывод ошибок:
display_errors
error_reporting
В production , display_errors
обычно устанавливается на Off
(что хорошо, потому что отображение ошибок на производственных площадках обычно нежелательно!).
Однако в development его следует установить на On
, чтобы отображались ошибки. Проверьте !
error_reporting
(по состоянию на PHP 5.3) по умолчанию установлено на E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
(имеется в виду, что все отображается за исключением уведомлений, строгих стандартов и уведомлений об устаревании). В случае сомнений установите значение E_ALL
, чтобы отобразить все ошибок. Проверьте !
Воу, воу! Нет проверки! Я не могу изменить свой php.ini!
Это позор. Обычно общие хосты не допускают изменения своего файла php.ini, и поэтому эта опция, к сожалению, недоступна. Но не бойся! У нас есть другие варианты !
Конфигурация времени выполнения
В желаемом скрипте мы можем изменять записи php.ini во время выполнения! Это значит, что он запустится, когда скрипт запустится! Классно!
<strong><a href="http://il1.php.net/manual/en/function.error-reporting.php" rel="nofollow noreferrer">error_reporting</a></strong>(E_ALL);
<strong><a href="http://php.net/ini_set" rel="nofollow noreferrer">ini_set</a></strong>("display_errors", "On");
Эти две строки будут иметь тот же эффект, что и изменение записей php.ini, как указано выше! Удивительный!
Я все еще получаю пустую страницу / ошибка 500!
Это означает, что скрипт даже не запускался! Это обычно происходит, когда у вас есть синтаксическая ошибка!
При синтаксических ошибках скрипт даже не попадает во время выполнения. Сбой в время компиляции , что означает, что он будет использовать значения в php.ini, которые, если вы не изменились, могут не разрешить отображение ошибок.
Журналы ошибок
Кроме того, PHP по умолчанию регистрирует ошибки. На виртуальном хостинге он может находиться в выделенной папке или в той же папке, что и скрипт-нарушитель.
Если у вас есть доступ к php.ini, вы можете найти его под error_log
.