Введение: что такое "белый экран смерти" в Bitrix?
"Белый экран" (White Screen of Death, WSOD) — одна из самых распространённых проблем в 1С-Битрикс, когда вместо привычного интерфейса административной панели или сайта пользователь видит абсолютно пустую белую страницу. Эта ситуация особенно критична для коммерческих проектов, так как делает сайт полностью недоступным. В этой статье мы разберем системный подход к диагностике и устранению этой проблемы.
Методы поэтапной диагностики
1. Включение отображения ошибок PHP
Первое и самое важное действие — заставить систему показывать ошибки вместо пустого экрана. Для этого внесите изменения в файл .htaccess:
php_flag display_errors on
php_value error_reporting E_ALL
php_flag log_errors on
Важно: после диагностики обязательно отключите отображение ошибок на боевом сервере для безопасности.
2. Активация режима отладки в Bitrix
В файле /bitrix/php_interface/dbconn.php добавьте:
$DBDebug = true;
$DB->Debug = true;
Это позволит увидеть SQL-ошибки, которые также могут быть причиной проблемы.
3. Анализ логов сервера
Логи веб-сервера — ваш лучший помощник в диагностике. Расположение файлов логов:
-
Apache: обычно
/var/log/apache2/error.logили/var/log/httpd/error_log -
Nginx:
/var/log/nginx/error.log
Для быстрого поиска ошибок, связанных с Bitrix, используйте команду:
grep -i "bitrix" /var/log/apache2/error.log
4. Настройка отладки в настройках ядра
В файле /bitrix/.settings.php установите:
'debug' => true,
'exception_handling' => [
'debug' => true,
'handled_errors_types' => E_ALL,
'exception_errors_types' => E_ALL,
],
5. Проверка системных переменных
Ошибка в переменной $_SERVER["DOCUMENT_ROOT"] — частая причина проблем после переноса сайта. Добавьте в начало файла dbconn.php проверку:
if (empty($_SERVER["DOCUMENT_ROOT"]) || !is_dir($_SERVER["DOCUMENT_ROOT"])) {
die("Incorrect DOCUMENT_ROOT: " . $_SERVER["DOCUMENT_ROOT"]);
}
6. Запуск системного теста
Скрипт bitrix_server_test.php
— официальный инструмент проверки окружения. Разместите его в корне сайта и откройте в браузере для получения детального отчета о соответствии сервера требованиям Bitrix.
Распространенные причины и их решения
1. Ошибки в файлах конфигурации
Проблема: Наиболее частая причина — синтаксические ошибки или лишние символы в:
-
/bitrix/php_interface/init.php -
/bitrix/php_interface/dbconn.php -
/bitrix/php_interface/after_connect.php
Решение: Проверьте файлы на наличие:
-
Лишних пробелов после закрывающего
?> -
Незакрытых кавычек или скобок
-
Синтаксических ошибок PHP
Совет: В современных PHP-проектах рекомендуется вообще не использовать закрывающий тег ?> в файлах, содержащих только PHP-код, чтобы избежать проблем с пробелами.
2. Проблемы после переноса сайта
Если белый экран появился после миграции:
1. Проверка short_open_tag:
<?php
// Проверьте текущее значение
echo ini_get('short_open_tag') ? 'On' : 'Off';
?>
В файле php.ini установите:
short_open_tag = On
2. Увеличение лимитов памяти:
В /bitrix/php_interface/dbconn.php:
ini_set("memory_limit", "512M");
ini_set("max_execution_time", 300);
set_time_limit(300);
3. Проблемы с кодировкой файлов:
При переносе между Windows и Unix-системами могут возникать проблемы с символами перевода строки. Используйте утилиты типа dos2unix для конвертации.
3. Несовместимость версий
Проблема: Конфликт версий PHP, MySQL или компонентов сервера.
Решение:
-
Проверьте соответствие версии PHP требованиям вашей редакции Bitrix
-
Убедитесь, что установлены все необходимые расширения PHP:
-
mbstring
-
xml
-
json
-
gd
-
mysqli или pdo_mysql
-
4. Ошибки в пользовательском коде
Диагностика: Временно переименуйте папку с пользовательскими компонентами и шаблонами, чтобы исключить их влияние:
mv /bitrix/components/local/ /bitrix/components/local_backup/
mv /local/templates/custom_template/ /local/templates/custom_template_backup/
Профилактика проблем
1. Регулярное обслуживание
-
Еженедельно: Проверяйте логи ошибок
-
Перед обновлением: Создавайте полные бэкапы
-
После изменений: Тестируйте на staging-окружении
2. Мониторинг ресурсов
Настройте оповещения о:
-
Превышении использования памяти
-
Ошибках PHP в логах
-
Недоступности сайта
3. Инструменты для разработчиков
1. Bitrix CLI: Используйте консольные команды для проверки системы:
php /bitrix/modules/main/cli/bitrix.php system:check
2. Xdebug: Настройте отладчик для глубокой диагностики сложных случаев.
Заключение
Белый экран в Bitrix — это не приговор, а сигнал о необходимости тщательной диагностики. Системный подход, описанный в этой статье, позволит не только быстро решить текущую проблему, но и создать инфраструктуру для предотвращения подобных ситуаций в будущем.
Главное правило: Никогда не вносите изменения на боевом сервере без предварительного тестирования и всегда имейте актуальную резервную копию.
Отличная статья, помогло увеличение ini_set("memory_limit", "2012M"); в init.php в самом начале