1С-Битрикс

Белый или чёрный экран при входе в админку Битрикс: причины и решения

Белый или черный экран при входе в админку Битрикс: причины и решения. Подробное руководство по восстановлению доступа к административной панели 1С-Битрикс

sqlka.ruОпубликовано: Чтение: 3 мин.
Белый или чёрный экран при входе в админку Битрикс: причины и решения

Одна из наиболее тревожных ситуаций для администратора сайта на 1С-Битрикс — невозможность войти в административную панель из-за появления пустого белого или чёрного экрана. Фронтенд сайта при этом может продолжать работать. В этой статье разберем основные причины этой проблемы и предоставим пошаговые инструкции по её устранению.

Основная причина: повреждение системного файла bx_root.php

Наиболее распространённая причина внезапного появления белого/чёрного экрана при попытке авторизации в административной части — повреждение или некорректное изменение файла \bitrix\modules\main\bx_root.php. Этот файл отвечает за определение корневых путей системы, и его нарушение приводит к сбою инициализации ядра Битрикс.

Как исправить проблему с файлом bx_root.php

Способ 1: Замена файла на корректную версию

  1. Подключитесь к сайту по FTP/SFTP или через файловый менеджер хостинга.
  2. Перейдите по пути: /bitrix/modules/main/
  3. Найдите файл bx_root.php.
  4. Создайте резервную копию текущего файла (например, переименуйте его в bx_root.php.backup).
  5. Скачайте оригинальный файл, соответствующий вашей версии ядра Битрикс:
    • Из официального дистрибутива Битрикс на сайте www.bitrix.ru
    • Или используйте эталонное содержимое, приведенное ниже.
  6. Загрузите корректный файл bx_root.php на сервер, заменив повреждённый.

Корректное содержимое файла bx_root.php

<?php
define("BX_ROOT", "/bitrix");

if(isset($_SERVER["BX_PERSONAL_ROOT"]) && $_SERVER["BX_PERSONAL_ROOT"] <> "")
    define("BX_PERSONAL_ROOT", $_SERVER["BX_PERSONAL_ROOT"]);
else
    define("BX_PERSONAL_ROOT", BX_ROOT);

Способ 2: Проверка через консоль (для опытных пользователей)

Если есть доступ к серверу по SSH, можно проверить целостность файла:

# Переход в директорию
cd /path/to/site/bitrix/modules/main/

# Проверка синтаксиса PHP-файла
php -l bx_root.php

Если скрипт выведет ошибки синтаксиса — файл поврежден и требует замены.

Другие возможные причины и решения

1. Нехватка памяти PHP (memory_limit)

Симптомы: Белый экран без сообщений об ошибках.

Решение: Увеличить лимит памяти в настройках PHP.

  • Через .htaccess: добавить строку php_value memory_limit 512M
  • Через php.ini: изменить параметр memory_limit = 512M
  • В файле /bitrix/.settings.php добавить в секцию 'default':
    'default' => array(
        'memory_limit' => '512M',
        // ... другие параметры
    ),

2. Ошибки в пользовательском коде или модулях

Диагностика: Включить вывод ошибок PHP для административного раздела.

  1. Отредактируйте файл /bitrix/.settings.php
  2. Найдите секцию 'exception_handling'
  3. Установите значения:
    'exception_handling' => array(
        'debug' => true,
        'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
        'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
        'log' => array(
            'settings' => array(
                'file' => '/bitrix/modules/error.log',
                'log_size' => 1000000
            )
        )
    ),
  4. Попробуйте войти в админку — теперь могут отображаться конкретные сообщения об ошибках.

3. Проблемы с сессиями или кешем

Решение: Очистить кеш и сессии вручную.

  • Удалите содержимое папок /bitrix/managed_cache/ и /bitrix/cache/ (кроме файла .access.php)
  • Очистите таблицы b_cache, b_cache_tag в базе данных
  • Удалите старые сессии из таблицы b_session SQL-запросом: DELETE FROM b_session WHERE DATE_ADD(DATE_ADD(FROM_UNIXTIME(date_last_activity), INTERVAL 1 DAY), INTERVAL 1 HOUR) < NOW();

Пошаговый алгоритм восстановления доступа

  1. Проверьте файл bx_root.php — это наиболее вероятная причина.
  2. Включите вывод ошибок через .settings.php для диагностики.
  3. Увеличьте memory_limit до 512МБ.
  4. Отключите недавно установленные модули — переименуйте их папки в /bitrix/modules/.
  5. Восстановите резервную копию системных файлов, если проблема появилась после обновления.

Профилактика проблем

  • Всегда создавайте полные резервные копии сайта перед обновлением ядра или установкой модулей.
  • Используйте систему контроля версий (Git) для отслеживания изменений в коде.
  • Настройте мониторинг доступности административной панели.
  • Регулярно обновляйте ядро Битрикс и модули до актуальных стабильных версий.

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

1С-Битрикс

Логирование в 1С-Битрикс: полное руководство для разработчика

Полное руководство по логированию в 1С-Битрикс: какие логгеры есть, как их настроить, форматировать сообщения и подключать к своим классам. Примеры кода и советы по использованию PSR-3

sqlka.ruЧтение: 4 мин.
← Все статьи