Написано: 04.12.2021
Просмотров: 36
Время чтения: 3 минуты
Автор: DerGross
Странница перезагружается и не входит в админ панель Opencart 3

На днях при выгрузке проекта под Opencart 3 на зарубежный хостинг мы столкнулись с проблемой. После переноса сайта с локального сервера на боевой у нас перестала работать админ панель. Иначе говоря, при попытке войти в админу мы получали окно ввода логина и пароль и более ничего. В случае успешного входа страница перезагружалась, получая токен доступа, но все ровно предлагала ввести логин и пароль вновь. При этом функционал восстановления пароля полностью работал.

Внимание! Данный вариант решения проблемы подходит в том случае если запрос проходит корректно, консоль в инспекторе кода чистая и вы не получаете ошибки 403, 500 и другие. Возможно, у вас выставлены не те права. Нужно предоставить 644 на все файлы в папке public_html и storage и 755 на все папки в рекурсивном формате.

Изучение тем в интернете не помогло решению нашего вопроса, поэтому мы решили действовать методом исключения.

Шаг первый - настройки сервера

Шаг первый - настройки сервера

Мы отсекли не верную настройку сервера, просто установив чистую сборку через инсталятор на поддомене сразу же на боевом хостинге, тестовый сайт запустился. Следовательно сервер работает, если нет - значит вам нужно смотреть настройки сервера, и это не ваш случай.

Шаг первый - настройки SSL

Шаг второй - настройка SSL

Проверка настрой редиректов и SSL сертификата. Обязательно посмотрите исходный код формы, и проверьте что указано в post запросе. Тип протокола должен совпадать с текущим. Если сайт работает на https, то и в запросе должен быть указан https запрос. Например: https://you-domain.ru/admin/index.php?route=common/login. Если типы запросов отличаются, то вам нужно настроить корректную работу SSL сертификата на вашем сайте.

Шаг первый - проверка Mysql

Третий шаг - проверка Mysql

Мы поменяли в настройках config.php в основной директории в папке admin, указав пусть до чистой базы данных с тестового сайта на этом же хостинге. После замены у нас получилось войти в панель администратора. Проблема выявлена и она в базе данных. Мы не будем долго и подробно рассказывать, как мы поочередно удаляли таблицы в PhpMyAdmin и проверяли корректность входа на сайт, но по итогу мы нашли проблемную таблицу под названием oc_setting

Шаг первый - решение проблемы

Шаг четвертый - решение проблемы

Вся проблема заключается в настройке одной единственной ячейки, под названием config_timezone. Если временная зона отличается от той, что у вас установлено на сервере, то вы будете получать бесконечное окно для входа в админ панель. Все что вам нужно, это узнать временную зону на вашем сервере и прописать ее ее в эту ячейку. После чего вы сможете заходить в админку без каких либо проблем.

Time zone

Для того чтобы узнать временную зону на вашем хостинге или сервере, можно посмотреть ее в настройках php.ini в папке cfg-bin. Нас интересует строчка date.timezone= Europe/Moscow, где Europe/Moscow - нужное нам значение. 

Или создайте php файл с содержимым:

<?php date_default_timezone_set('Europe/London');
	if (date_default_timezone_get()) {
		echo 'date_default_timezone_set: ' . date_default_timezone_get() . ';
	} if (ini_get('date.timezone')) {
		echo 'date.timezone: ' . ini_get('date.timezone');	
} ?>

Поместите его в корневую директорию public_html и откройте через адресную строку. Если вы сделали все правильно, то вы получите информацию о часовом поясе:

date_default_timezone_set: Europe/London
date.timezone: Europe/London


После проведенных манипуляций вы избавитесь от проблемы и сможете спокойно завершить вашу работу!

Понравилась статья?
Поделись ей с друзьями в социальных сетях: