Белый экран смерти! - PullRequest
5 голосов
/ 26 мая 2010

После отладки приложения codeigniter, которое было установлено в новой среде разработки, я начал волноваться, когда вижу белые экраны, на которых больше ничего нет. Мне удалось устранить все ошибки, которые это вызвали, но это заняло слишком много времени.

PHP error_reporting(E_ALL) & display_errors", 1 также настроен. Я даже установил Xdebug в надежде получить больше информации, но нет. Мои настройки ведения журнала также работают, но в журнал ничего не записывается.

Есть ли способ распечатать что-нибудь информативное вместо белого экрана? Это, безусловно, сократит мое время, затрачиваемое на устранение возможных ошибок, которые вызывают это?

Большое спасибо!

Ссылка: Почему Code Igniter дает мне белую страницу?

Ответы [ 11 ]

10 голосов
/ 26 мая 2010

Если есть фатальная ошибка компиляции, тогда вы вполне можете получить пустую страницу. Попробуйте сделать

php -l <filename.php>

против вашего сценария

4 голосов
/ 26 февраля 2011

Со времени моего вопроса я обнаружил, что ничто, похоже, не гарантирует, что ошибки всегда выводятся с помощью PHP, который, кажется, выбрасывает белые экраны тут и там. Независимо от ini-настроек PHP.

Я обнаружил, что лучший обходной путь, однако, заключается в том, чтобы использовать следующую строку, чтобы обеспечить регистрацию ошибок в файле, легко доступном и контролируемом приложением:

ini_set('error_log', MYPATH .'logs/errorlog.log'); 

Насколько я тестировал, когда появляются белые экраны - он также регистрируется в этом журнале ошибок. Кажется, это самый простой способ узнать, что происходит, когда что-то идет не так.

4 голосов
/ 26 мая 2010

Посмотрите в верхней части /index.php для вызова error_reporting() - и убедитесь, что он не меняет вашу конфигурацию php.ini на что-то другое (кроме E_ALL).

И поскольку вы не упомянули свою php.ini конфигурацию, убедитесь, что у вас также есть error_reporting = E_ALL.

3 голосов
/ 26 мая 2010

Grep файлы для 'error_reporting' и 'display_errors', приложение может где-то отключить его.

Кроме того, чтобы увидеть ошибки синтаксического анализа, вам нужно установить error_reporting / display_errors в файле php.ini или в файле .htaccess, его установка в файлах сценария не будет выполняться и приведет к появлению белой страницы Вы описываете, есть ли ошибки синтаксического анализа.

2 голосов
/ 27 мая 2010

Кроме всего прочего, также убедитесь, что что-то, замаскированное с помощью @ (оператор подавления ошибок), не вызывает фатальную ошибку.

2 голосов
/ 27 мая 2010

Лучше всего иметь контрольный список распространенных проблем, которые могут вызвать это, поскольку CI по умолчанию уже

error_reporting(E_ALL);
  1. Одноименные контроллеры и модели
  2. использование зарезервированных слов в качестве методов

список можно продолжить ..

1 голос
/ 16 июля 2013

У меня была эта проблема на моем только что установленном сервере. Debian 7. Я включил ведение журнала, отчеты об ошибках, отключил gzip и т. Д.

Однако в моей PHP-установке MySQL не был включен. Включение MySQL помогло мне.

1 голос
/ 26 мая 2010

Убедитесь, что ваши журналы и папка кеша внутри / system chmod'ed на 777.

1 голос
/ 26 мая 2010

Рассмотрите возможность настройки Переменная конфигурации PHP error_log - это может быть полезно, если у вас есть настройка кода error_reporting() без вашего ведома. Затем вы можете проверить журнал ошибок и посмотреть, какие ошибки, если таковые были, произошли.

0 голосов
/ 04 мая 2016

Случайно ли вы создали кешированный вывод для этого конкретного метода внутри вашего контроллера. Потому что если так, то он может создать кэшированную версию страницы, и эта страница практически не работает. Отображается страница вывода кэшированных ошибок. Пожалуйста, проверьте папку кеша внутри приложения. Он должен содержать только файл index.html.

...