Magento 1.9 Не вдається увійти до панелі адміністратора!


99

Я встановив Magento 1.9 . Це добре працювало тиждень. Раптово вчора, коли я спробував увійти на панель адміністратора Magento, я набрав usernameі password, натиснув кнопку Вхід, і нічого не сталося. Сторінка оновлюється, і це все. Ніяких помилок чи будь-яких інших повідомлень.

Якщо я ввів неправильне ім’я користувача або пароль, він показує помилку.

Після того, як я погукався з цим питанням, мені рекомендували коментувати наступні рядки в:

app \ code \ core \ Mage \ Core \ Модель \ Сесія \ Анотація \ Varien.php

/* to solve login issue */
  /*if (!$cookieParams['httponly']) {
  unset($cookieParams['httponly']);
  if (!$cookieParams['secure']) {
  unset($cookieParams['secure']);
  if (!$cookieParams['domain']) {
  unset($cookieParams['domain']);
  }
  }
  }

if (isset($cookieParams['domain'])) {
  $cookieParams['domain'] = $cookie->getDomain();*/ //I have commented these lines

А для деяких старих версій нижче було рекомендовано в тому ж файлі.

$cookieParams = array(           
    'lifetime' => $cookie->getLifetime(),           
    'path'     => $cookie->getPath(),           
    //'domain'   => $cookie->getConfigDomain()           
    //'secure'   => $cookie->isSecure(),           
    //'httponly' => $cookie->getHttponly()       
);
  }*/

Навіть після цього я не зміг увійти до адміністратора. Це як було. Хтось стикався з цією проблемою? Чи є якесь інше рішення цього питання?

(Я спробував очистити кеш і сеанс через ftp).


Ви можете очистити кеш-пам’ять браузера та спробувати ще раз?
аламелу

Скопіюйте основні файли app/code/local/Mage/Core..blahblahдля редагування, щоб Magento змінив основний файл. Також використовуйте git для контролю версій, це знахідка.
Кріс К

@SHIBHI S, відправте це посилання magentolearning.com/can-not-login-magento-admin-panel
Кумар

1
Якщо ви користуєтеся Chrome, введіть F12> Ресурси> Cookies> Клацніть правою кнопкою миші ваш домен> Очистити.
rybo111

Відповіді:


122

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

Існує ціла низка різних проблем, які спричиняють поведінку адміністратора без помилок, але всі вони повертаються до Magento, не в змозі встановити чи прочитати файли cookie. Magento використовує сеанси для передачі повідомлень про помилки між сторінками - тому ви не бачите повідомлення про помилку. Magento також використовує сеанси для зберігання значення "увійшов у систему", тому не встановлення сеансів також спричиняє основну поведінку помилок.

До можливих причин можна віднести

  • Невідповідність часу локального комп’ютера та сервера, що викликає миттєве вимкнення файлів cookie. Переконайтесь, що час вашого сервера правильний.

  • Неправильні дозволи на ввімкнення var/session, що запобігає збереженню файлів сеансу

  • Неправильна конфігурація бази даних / redis / іншого зберігання сеансу, що запобігає збереженню значень сеансу

  • Модуль інстанціює сеанси на раннє , запобігаючи встановленню правильних імен сесії

  • Ви розробник, що використовує кілька URL-адрес і має кілька доменів cookie

  • Інший розробник якось змінився app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, створивши важку можливість відстежувати помилку

  • Домен файлів cookie у System -> Configuration -> Web -> Session Cookie Managementне відповідає фактичному домену сайту.

  • Ви використовуєте localhostяк домен свого сервера, а також використовуєте версію веб-файлу, яка має проблеми / помилки з налаштуванням файлів cookie localhostв деяких ситуаціях.

Короткострокове виправлення - це просто видалити файл cookie для домену. Цього досить часто для вирішення проблеми. Якщо вона зберігається, з’ясуйте, яка з вищезазначених причин є причиною вашої помилки, і вживайте заходів щодо її усунення (виправлення дозволів тощо)


7
Ви можете скористатися командою sys: n98-magerun: перевірити, щоб знайти проблеми з доменом cookie та базовим URL-адресом. magerun.net/quick-tip-find-login-isissue-with-syscheck-command
cmuench

1
@Alan Storm, Дякую за чітке пояснення. Я вирішив своє питання. У моєму випадку причина видачі - третя.
SIBHI S

4
У моєму випадку на сервері було недостатньо місця на диску. Тому ви можете додати це як можливу причину.
Симон

@cmuench Я запускаю цю команду і не розумію результатів: Недійсна незахищена BaseURL Store: за замовчуванням Налаштовано ім'я хоста. Ім'я хоста повинно містити крапку ✖ Недійсна незахищена BaseURL Store: французька Неправильне ім'я хоста налаштовано. Ім'я хоста повинно містити крапку ✖ Недійсна незахищена BaseURL Store: sot_eng Неправильне налаштоване ім'я хоста. Ім'я хоста повинно містити крапку ✖ Недійсна незахищена BaseURL Store: sot_fra Налаштоване ім'я хоста. Ім'я хоста повинно містити крапку Domain Домен cookie (захищено) магазину: за замовчуванням ОК - Не встановлено домен Усі домени cookie виглядають однаково Ок і без домену встановлено
Denisa

@Denisa У вас буде трохи більше удачі, якщо ви спробуєте задати це як нове запитання.
Алан Шторм

33

У мене такі ж симптоми у деяких установ Magento (не тільки 1,9). У моєму випадку це відбувається лише в Chrome. Я це виправляю, увійшовши у Firefox / Safari / Opera і зміную "Використовувати лише HTTP" на "Ні" в "Керування файлами cookie сеансу" в налаштуваннях "Веб".

Див. Скриншот програми Magento з налаштуваннями cookie


3
Це допомогло мені запустити моє середовище розробки в Chrome, але пам’ятайте, що не використовувати ці налаштування у виробництві, оскільки це відкриває цілий клас вразливих місць безпеки.
Стівен Кросбі

де знаходиться розділ Керування файлами cookie-сеансів?
Арьой Армон

1
Також перевірте свій домен файлів cookie - я розвивався локально, і це виявилося моєю проблемою.
Phil Birnie

Мені дуже допомогли! Ніколи не знав, що це відбувається лише в Chrome. Ха-ха!
jehzlau

4
Для того, щоб встановити , Use HTTP onlyщоб Noбез доступу адмін - панелі. Ви можете безпосередньо запустити цей SQL-запит: UPDATE __DATABASE_NAME__. core_config_dataSET value= '0' ДЕ core_config_data. path= 'web / cookie / cookie_httponly';
Нолвенніг

11

У мене теж була ця проблема. Виявлені сеанси не вдалося записати var/session, навіть якщо сам каталог заданий 0777. Magento створив файли сеансу, але всі вони залишилися нульовими байтами.

Зміна пам'яті сеансу від filesдо dbвирішена проблема для мене.


це працює! Я не розумію, чому Magento не записує сеанси та кешує файли. Дозволи є правильними!
Мікеланджело

Якщо я пригадую свою ситуацію, це було або те, що диск був заповнений, або в каталозі сеансу було занадто багато файлів.
Giel Berkers

Цей працює для мене !!
Ner

У моєму випадку: Зміна пам’яті сеансу з db на вирішену проблему.
akgola

7
  1. Відкрийте каталог встановлення Magento. Знайдіть і відкрийте файл index.php.
  2. Шукати повідомлення про помилки (E_ALL | E_STRICT); код.
  3. Прокоментуйте це так:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. І замість цього використовуйте наступний код:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Відкиньте його, видаливши знак #, щоб виглядати так:

    ini_set('display_errors', 1);

  6. Збережіть цей файл та завантажте на сервер. Перезавантажте сторінку свого веб-сайту, щоб побачити помилки.


6

Інша можлива причина: жорсткий диск / обсяг / квота заповнений, тому дані сеансу не можуть бути записані на диск. Може здатися малоймовірним, але щойно трапилося зі мною вдруге і знадобився певний час.

У мене недостатньо репутації для коментарів, але @Alan Storm, можливо, ви хочете взяти це у свій чудовий список.


6

Нещодавно у мене була така ж проблема і простий трюк працював для мене. Також це стосується людей, які не мають доступу до інформаційної панелі в Google Chrome . Якщо ви можете працювати над Mozilla Firefox, будь ласка, зробіть це, тому що я думаю, що це питання не існує для Mozilla firefox.

Тож рішення для хрому:

Перейдіть до системи-> Конфігурація-> Веб . Розкрийте вкладку Незахищене та безпечне . Змініть Базову URL-адресу, http://127.0.0.1/[Your folder name]якщо Ви використовуєте localhost або змініть її на URL-адресу Вашого веб-сайту, через яку Ви отримуєте доступ до інтерфейсу. Мені довелося двічі увійти, щоб потрапити на інформаційну панель, оскільки коли я вперше ввів деталі, вона просто оновлюється і повертається на ту саму сторінку, на яку ви згадували її як циклічну.


5

Відкрийте свій phpMyAdmin у свого хоста, спробуйте виконати цю команду sql.

Запустіть цей SQL:

SET FOREIGN_KEY_CHECKS=0;
UPDATE core_store SET store_id = 0 WHERE code='admin';
UPDATE core_store_group SET group_id = 0 WHERE name='Default';
UPDATE core_website SET website_id = 0 WHERE code='admin';
UPDATE customer_group SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHECKS=1;

Тепер адміністратор може увійти.

Будь ласка, дотримуйтесь цього:

Сторінка адміністратора показує 404 сторінки не знайдені


1
не забудьте відкрити в анонімному вікні чи іншому браузері для видалення сеансів
Мартін

3

У мене була така ж проблема, і я вирішив її, видаливши всі файли в / var / session. Я думаю, що це занадто багато сеансу в Магенто!


3

Список тривожної бурі правильний і детальний. Ось пара додаткових випадків.

  1. В бродяжному порядку перевірити також дозвіл var/sessionхост-машини
    (проблеми з монтажем)
  2. Перевірте, чи є на вашому диску повне чи занадто багато файлів у var / session
  3. Запустити n98-magerun.phar sys:check(вирішує проблеми, включаючи домен файлу cookie)
  4. Змініть сеанс до бази даних, відредагував local.xml. Це виключить більшість проблем з дозволом, використовуючи insidie<global>

    <session_save><![CDATA[db]]></session_save>

Також можна змінювати розширення сторонніх розробників (брандмауер / розширення безпеки), наприклад https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 ставить вас у чорному списку, якщо ви намагаєтеся занадто багато разів.

Це може статися, якщо ваш сеанс спочатку не працює для вирішення проблем з дозволом, але потім продовжуватиметься збоєм навіть після виправлення оригінальної проблеми

У вашому конкретному випадку слідкуйте за admin_session_user_login_successподією, оскільки більшість модулів захисту / брандмауера використовують цю подію. Особливо слідкуйте, якщо $_SESSION['admin']спостерігачі скидають змінну


2

Важливо також, щоб у вас був ключ форми, інакше ваша форма не буде оброблена.

<?php echo $this->getBlockHtml('formkey'); ?>

2

Просте рішення цієї проблеми - використовувати http://127.0.0.1 як ім'я хоста замість localhost.

Оскільки проблема полягає в тому, що ви не можете увійти до свого адміністратора, вам слід змінити захищені та незахищені базові URL-адреси на вкладці бази даних: core_config_data

Це також матиме ваше підтвердження baseurl з системою n98-magerun sys: check


2

Якщо ви розвиваєтесь localhostі встановили або змінили своє доменне ім'я localhost, оновіть core_config_dataназви доменних таблиць бази даних 127.0.0.1замість цього. НапрUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

Також ви можете оновити пароль у базі даних, якщо все інше зверху не працювало і вам потрібен відчайдушний доступ:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;

замініть слова користувача та паролі відповідно до ваших потреб.


2

Перш за все спробуйте очистити кеш-пам'ять, я думаю, і якщо це не працює, спробуйте внести chmod 700 у свою папку var.


1

Ви можете змінити веб-переглядач, можливо, ця робота для мене. Коли з’являється ця помилка, я змінив хром браузера на firefox і він працює.


0

Те саме саме сталося зі мною деякий час тому, і моя проблема виникла з сесії. У мене не було достатньо місця для DISK для створення сеансів і кешу var/. Я видалив деякі речі і все працював після. Можливо, комусь це допоможе.

Ура


0

Спробуйте очистити кеш, випорожнивши папки "var / cache" та "var / session", це вирішило це для мене.

Я також повинен був один раз перезапустити веб-сервер після нього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.