Перейти к содержимому

Страница админки не открывается - разбор причин

Своя страница административной части не открывается: белый экран, форма входа или ошибка доступа. Разбираем причины по убыванию частоты.

С чего начать

Включаем показ ошибок на время разбора страницы:

ini_set('display_errors', '1');
error_reporting(E_ALL);
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_before.php';
// белый экран почти всегда прячет обычную ошибку в коде страницы

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

Проверяем уровень прав текущего сотрудника:

printf("права модуля: %s\n", $APPLICATION->GetGroupRight('vendor.module'));
printf("администратор: %s\n", $USER->IsAdmin() ? 'да' : 'нет');
// уровень «D» означает закрытый доступ и вызов формы входа страницей

Смотрим, тот ли файл подключается:

Окно терминала
ls -la /home/bitrix/www/bitrix/admin/ | grep vendor
ls -la /home/bitrix/www/local/modules/vendor.module/admin/
# страницы модуля обычно лежат в модуле, а в каталоге админки - файлы-обёртки

Проверяем пункт меню модуля:

Окно терминала
grep -rn 'vendor_items.php' /home/bitrix/www/local/modules/vendor.module/ | head
# ссылка в меню и имя файла страницы обязаны совпадать до символа

Смотрим журнал ошибок веб-сервера:

Окно терминала
tail -30 /var/log/nginx/error.log | grep -i 'PHP\|Fatal'
# на боевом сайте показ ошибок выключен, и причина видна только в журнале

Причины

  1. Ошибка в коде страницы до вывода примерно 30% случаев

    ПризнакСтраница отдаёт пустой белый экран без разметки и без сообщений об ошибке.

    ПроверкаВключаем показ ошибок на стенде и смотрим журнал ошибок веб-сервера на бою.

    Что делатьЧиним ошибку в коде страницы: фатальная ошибка обрывает вывод до первой строки разметки.

  2. Права модуля закрывают страницу примерно 25% случаев

    ПризнакВместо страницы показывается форма входа, хотя сотрудник уже вошёл в админку.

    ПроверкаПечатаем уровень прав сотрудника на модуль прямо в начале кода страницы.

    Что делатьВыдаём группе нужный уровень доступа или смягчаем проверку прав на этой странице.

  3. Не подключён пролог административной части примерно 20% случаев

    ПризнакСтраница выводит текст без оформления админки либо падает на первом же вызове.

    ПроверкаСмотрим первые строки файла: подключены ли пролог и эпилог административной части.

    Что делатьПодключаем пролог первой строкой и эпилог последней: между ними живёт код страницы.

  4. Файл лежит не там, куда ведёт ссылка примерно 15% случаев

    ПризнакПункт меню есть, но переход по нему заканчивается ошибкой о ненайденной странице.

    ПроверкаСверяем путь из пункта меню с фактическим расположением файла страницы модуля.

    Что делатьКладём файл-обёртку в каталог административной части и оставляем код страницы в модуле.

  5. Пункт меню не появился в разделе примерно 10% случаев

    ПризнакСтраница открывается по прямой ссылке, но найти её в меню невозможно.

    ПроверкаПроверяем файл описания меню модуля и права на раздел, в который пункт добавляется.

    Что делатьПравим описание меню модуля и сбрасываем кэш: меню административной части кэшируется.

Частые вопросы

Где должны лежать страницы своего модуля?

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

Почему вместо страницы показывается форма входа?

Так работает штатная проверка прав: при отказе страница вызывает форму авторизации. Проверяют уровень прав сотрудника на модуль и на раздел.

Можно ли отлаживать страницу на боевом сайте?

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

Почему страница ломает вёрстку админки?

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

Как проверить страницу под обычным сотрудником?

Зайти под учётной записью с настоящими правами или временно снизить свои. Под администратором проверки прав проходят всегда и ничего не показывают.

Смежное

Первоисточник