Почему не пускает в админку 1С-Битрикс?
Проблема
При попытке зайти в админку 1С-Битрикс (site.ru/bitrix) страница обновляется. Логин/пароль вводим верные, но войти не получается, страница обновляется, введенные авторизационные данные сбрасывает.
Однако, если при попытке входа (в всплывашке браузера) нажать «Запомнить меня», войти все же удается и тут обнаруживается вторая проблема — нет возможности загрузить картинки в элементы инфоблоков, выдает ошибку «Bad sessid».
Диагностика, часть 1
Кейса бы не случилось, если бы все было так, как предполагалось изначально. Проблема со входом, да и загрузкой файлов в 99% случаев возникает, если не хватает места на хостинге. Однако, не наш случай. Объем дискового пространства мы мониторим, тут, конечно, проверили на всякий случай — места на хостинге достаточно. Пришлось обратиться к ошибке «Bad sessid», для устранения которой есть несколько вариантов.
Промежуточное решение
Для устранения ошибки «Bad sessid» рекомендуется поменять хранение сессии в /bitrix/.settings.php, с чего мы и начали. Однако, проблему это не решило. Еще одна рекомендация — в файле .settings.php поменять тип хранения с database на file или иные варианты. Попробовали — не помогло. Безуспешные попытки решить проблему помогли лишь прийти к выводу, что она кроется не в повреждении таблицы в БД, а также не в самом типе хранения. Заодно проверили сайт на признаки взлома, мало ли что... Признаков взлома не обнаружили.
Диагностика, часть 2
Так как предыдущие попытки устранить проблему не увенчались успехом, диагностику мы продолжили, что и позволило обнаружить еще одну проблему — внезапное завершение сессии администратора при попытке авторизоваться под другим пользователем или при попытке перехода на другую страницу, причем авторизовавшийся пользователь получал права ранее залогинившегося администратора. Это привело к мыслям, что есть вторая сессия, что удалось подтвердить благодаря просмотру логов.
Напишите нам!
Решение
Проще, чем казалось, на самом деле.
- 01 Заходим: «Администрирование > Настройки > Настройки продукта > Сайты > Список сайтов»
- 02 При условии, что сайт у вас один — переходим в раздел с вашим сайтом, находим поле «Доменное имя», там будет указан его адрес: site.ru.
- 03 Удаляем его.
- 04 Возвращаемся на страницу авторизации, очищаем cookie браузера — готово!
Итог
Несмотря на то, что в большинстве случаев симптомы указывают на недостаток места на хостинге, иногда причина может быть в другом. На данный момент, мы знаем, что диагностировать проблему можно и проще. Для этого при авторизации нужно посмотреть хранимые cookie и если вы там видите две записи PHPSESSID, одну site.ru, а второй .site.ru, то вы столкнулись с редким случаем, описанным выше. Кстати, на сайте 1С-Битрикс есть описание решения проблемы с «многосайтовостью», его можно найти по ссылке. Вот только к чему эта проблема еще может привести — не описано.