Главная » Ошибки Битрикс » Белый экран в Битрикс: причины и как найти ошибку

Белый экран в Битрикс: причины и как найти ошибку

Диагностика белого экрана в Битрикс: включение отладки в settings.php показывает скрытую фатальную ошибку PHP

Белый экран — самая неинформативная из всех поломок. Сайт открывается, но страница пустая: ни текста, ни ошибки, ни намёка на причину. В исходном коде тоже ничего. Иногда падает весь сайт, иногда только админка, иногда одна страница.

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

Первое действие: включить вывод ошибок

Не гадайте о причине — заставьте сайт показать ошибку. В 1С-Битрикс это делается в файле /bitrix/.settings.php:

<?php
return [
    'exception_handling' => [
        'value' => [
            'debug'              => true,
            'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED,
            'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED,
            'log' => [
                'settings' => ['file' => 'bitrix/modules/error.log'],
            ],
        ],
        'readonly' => false,
    ],
];

Ключевой параметр — debug со значением true.

Если доступ к файлам есть, но правки не помогают, включите вывод напрямую в начале /bitrix/php_interface/dbconn.php:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

Обязательно верните обратно после отладки: тексты ошибок PHP раскрывают пути на сервере и структуру проекта, и на боевом сайте им не место.

Если доступа к файлам нет

Смотрите логи — они существуют независимо от настроек вывода:

Где искатьЧто там
/bitrix/modules/error.logЛог ошибок самого Битрикс
Панель хостинга, раздел «Логи»error_log сайта
/var/log/nginx/error.logОшибки веб-сервера на VPS
/var/log/php-fpm/Фатальные ошибки PHP

В логе ищите строки со словами Fatal error, Parse error или Allowed memory size — там же будет файл и номер строки.

Нужна помощь с Битрикс?





    Причина 1. Синтаксическая ошибка в коде

    Самый частый случай: недавно правили init.php, шаблон или файл компонента и допустили опечатку — лишнюю скобку, пропущенную точку с запятой.

    Признак: белый экран появился сразу после правки файла.

    Проверить конкретный файл можно без запуска сайта:

    php -l /local/php_interface/init.php

    Ошибка в init.php роняет и публичную часть, и админку — это отличает её от ошибки в шаблоне, при которой админка обычно продолжает работать. Подробнее о самом файле — в статье init.php в Битрикс.

    Причина 2. Нехватка памяти

    Скрипт упирается в лимит memory_limit и молча завершается. Часто проявляется не на всех страницах, а на тяжёлых: большой каталог, экспорт, импорт.

    В логе при этом видно Allowed memory size of N bytes exhausted. Разбор именно этой ошибки со способами решения — в статье Ошибка Allowed memory size exhausted в Битрикс.

    Причина 3. Превышено время выполнения

    Скрипт работает дольше, чем разрешает max_execution_time, и обрывается. Типичная ситуация при импорте каталога, обмене с 1С или тяжёлом агенте.

    Признак: белый экран появляется не сразу, а после долгой загрузки.

    Причина 4. Ошибка подключения к базе

    Если база недоступна, Битрикс иногда отдаёт пустую страницу вместо сообщения. Проверьте параметры подключения в /bitrix/php_interface/dbconn.php и /bitrix/.settings.php — они должны совпадать.

    Частые причины именно этого варианта:

    • сменился пароль от базы после переноса сайта;
    • MySQL не запущен или упал;
    • кончились соединения — тогда в логе будет Too many connections;
    • кончилось место на диске, и база ушла в режим только для чтения.

    Причина 5. Проблема после обновления

    Обновление ядра прошло наполовину: часть файлов новая, часть старая. Или обновился PHP на хостинге, и старый код перестал работать.

    Что проверить:

    1. Версию PHP — не подняли ли её на хостинге без предупреждения.
    2. Завершилось ли обновление: в админке есть журнал обновлений.
    3. Не отключился ли нужный модуль PHP.

    Если белый экран появился ровно после обновления, самое быстрое решение — восстановить сайт из резервной копии и повторить обновление аккуратно, о чём есть отдельная статья Обновление 1C-Bitrix без простоев сайта.

    Причина 6. Права на файлы

    Веб-сервер не может прочитать файл — и получается пустой ответ. Проверьте владельца и права: обычно каталоги 755, файлы 644, владелец совпадает с пользователем веб-сервера.

    Особенно часто это всплывает после ручной загрузки файлов по FTP от другого пользователя.

    Причина 7. Проактивная защита

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

    Проверьте журнал вторжений в административной части: если запрос заблокирован, он там будет.

    Быстрая диагностика

    Порядок, который экономит время:

    Что наблюдаемКуда смотреть в первую очередь
    Белый экран везде, включая админку Синтаксическая ошибка в init.php или dbconn.php
    Публичная часть пустая, админка работает Ошибка в шаблоне сайта
    Пустая только одна страница Компонент на этой странице, права на файл, проактивная защита
    Экран появляется после долгой загрузки Время выполнения или память
    Началось после правки файла Проверить файл через php -l
    Началось после переноса сайта Параметры подключения к базе, права на файлы

    Чего делать не стоит

    • Наугад чистить кеш и перезагружать сервер. Иногда помогает, но причина остаётся неизвестной и вернётся.
    • Оставлять display_errors включённым. Отладку закончили — выключите: пути на сервере и структура проекта не должны быть видны посетителям.
    • Массово менять права на 777. Проблему прав это решит, но откроет дыру в безопасности.
    • Обновлять ядро в надежде починить. При неизвестной причине обновление чаще усугубляет ситуацию.

    Итог

    Белый экран — это скрытая фатальная ошибка PHP. Первое и главное действие — включить debug в /bitrix/.settings.php или посмотреть логи, чтобы увидеть настоящий текст ошибки. Гадать о причине без этого бессмысленно.

    Дальше всё решается быстро: синтаксическая ошибка в недавно правленном файле, нехватка памяти, превышение времени выполнения, недоступная база или права на файлы. Область поломки подсказывает сама картина — падает весь сайт, только публичная часть или одна страница.

    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    Инструменты
    База знаний