Рано или поздно каждый разработчик drupal сталкивается с этим: переход по ссылке или нажатие кнопки – и белая страница. Без контента. Без ошибок. Ничего. Что делать, если непонятно, что делать?
Часто, но не всегда, белый экран (wsod) становится результатом установки нового модуля, внесения изменений в код модуля или темы или обновления ядра Друпал или модулей Друпал.
В ситуации с белым экраном drupal после внесения изменений в код все ясно: требуется проверить новый код или откатить код до состояния, когда все работало.
Белый экран WSOD и PHP error_reporting
Если error_reporting установлен в 0, можно успешно получать PHP Fatal Error(s), но не видеть их. В то же время, для рабочих копий сайтов под нагрузкой установка error_reporting в 0 – это нормальная практика.
Выход из ситуации: установить error_reporting в 1 или проверить серверные логи.
Если у Вас свой сервер, ситуация разрешается просто: читаем логи, правим php.ini (или конфиг апача), перезапускаем сервисы и наслаждаемся сообщениями об ошибках. С коммерческими хостингами сложнее: не каждый даст читать syslog, error_log домена, устанавливать свои правила в php.ini и править конфиг апача.
Из этой ситуации есть выход. Можно открыть settings.php домена (/sites/default/settings.php по умолчанию) и дописать в него в самом конце следующий код:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);Существует вероятность того, что все сообщения все равно не будут отображаться на экране, например, ситуации с достижением лимита памяти. Тем не менее, это первый шаг к поиску и устранению неполадок.
Пробелы в конце PHP файла после закрывающих скобок
Вообще говоря, закрывающие скобки в PHP-файлах ( ?> ) совершенно необязательны. Более того, рекомендации по программированию под Drupal содержат прямое требование никогда не использовать данную конструкцию в конце файла.
Тем не менее, следует проверить файлы на наличие данных конструкций. Начать лучше всего с недавно изменявшихся файлов.



