Magento 1.9 관리자 패널에 로그인 할 수 없습니다!


99

Magento 1.9를 설치했습니다 . 일주일 동안 잘 작동했습니다. 갑자기 어제 Magento 관리자 패널에 로그인을 시도하고 입력 한 usernamepassword로그인 버튼을 클릭 했는데 아무 일도 일어나지 않았습니다. 페이지가 새로 고쳐집니다. 오류나 다른 메시지가 없습니다.

잘못된 사용자 이름 또는 비밀번호를 입력하면 오류가 표시됩니다.

이 문제에 대해 googled 한 후 다음 줄을 주석으로 처리하는 것이 좋습니다.

app \ code \ core \ Mage \ Core \ Model \ Session \ Abstract \ 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를 통해 캐시와 세션을 지우려고 시도했습니다).


브라우저 캐시 / 쿠키를 지우고 다시 시도 하시겠습니까?
alamelu

app/code/local/Mage/Core..blahblah편집 을 위해 코어 파일을 복사 하여 Magento가 코어 파일을 재정의합니다. 버전 제어를 위해 git을 사용하십시오. 그것은 신의 선물입니다.
Chris K


1
Chrome을 사용하는 경우 F12 키> 리소스> 쿠키> 도메인을 마우스 오른쪽 버튼으로 클릭하고 지우기를 클릭합니다.
rybo111 2016 년

답변:


122

핵심 코드 수정을 중지하십시오. 일시적으로 문제를 해결할 수 있지만 추적하기가 거의 불가능한 향후 문제가 발생할 수 있습니다.

거기의 다른 문제의 수 당신이보고있는 에러가없는 관리자 로그인 동작이 발생할 수 있지만, 그들은 모두 설정하거나 세션 쿠키를 읽을 수 없습니다 젠토로 돌아갑니다. Magento는 세션을 사용하여 페이지간에 오류 메시지를 전달하므로 오류 메시지가 표시되지 않습니다. Magento는 세션을 사용하여 "로그인 됨"값을 저장하므로 세션을 설정하지 않으면 핵심 오류 동작이 발생합니다.

가능한 원인은 다음과 같습니다.

  • 로컬 컴퓨터 시간과 서버 시간이 일치하지 않아 인스턴트 쿠키 무효화가 발생합니다. 서버 시간이 올바른지 확인하십시오.

  • 에 대한 권한이 var/session잘못되어 세션 파일이 저장되지 않음

  • 데이터베이스 / redis / 기타 세션 스토리지의 올바르지 않은 구성으로 세션 값 저장 방지

  • 모듈이 세션을 조기에 인스턴스화 하여 올바른 세션 이름을 설정할 수 없음

  • 여러 개의 URL을 사용하고 쿠키 도메인여러 개인 개발자

  • 다른 개발자가 어떻게 든 수정 app\code\core\Mage\Core\Model\Session\Abstract\Varien.php하여 버그를 추적하기 어렵습니다.

  • 의 쿠키 도메인 System -> Configuration -> Web -> Session Cookie Management이 실제 사이트 도메인과 일치하지 않습니다.

  • localhost서버 도메인으로 사용하고 localhost일부 상황에서 쿠키를 설정하는 데 문제가 있거나 버그가있는 웹킷 버전을 사용하고 있습니다.

단기 수정은 도메인의 쿠키를 삭제하는 것입니다. 종종 문제를 해결하기에 충분합니다. 지속되는 경우 위의 원인 중 어떤 것이 오류의 원인인지 파악한 후 해결 방법 (권한 수정 등)을 수행하십시오.


7
n98-magerun의 sys : check 명령을 사용하여 쿠키 도메인 및 기본 URL 관련 문제를 찾을 수 있습니다. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@Alan Storm, 명확한 설명 감사합니다. 내 문제를 해결했습니다. 제 경우에는 문제의 이유가 세 번째입니다.
SIBHI S

4
제 경우에는 서버에 디스크 공간이 부족했습니다. 따라서이를 가능한 원인으로 추가 할 수 있습니다.
Simon

@cmuench 해당 명령을 실행했는데 결과를 이해할 수 없습니다. 잘못된 안전하지 않은 BaseURL 저장소 : 기본 잘못된 호스트 이름이 구성되었습니다. 호스트 이름에 점이 있어야합니다. ✖ Invalid Unsecure BaseURL Store : french 잘못된 호스트 이름이 구성되었습니다. 호스트 이름에 점이 포함되어 있어야합니다. ✖ Invalid Unsecure BaseURL Store : sot_eng 잘못된 호스트 이름이 구성되었습니다. 호스트 이름에 점이 포함되어 있어야합니다. ✖ Invalid Unsecure BaseURL Store : sot_fra 잘못된 호스트 이름이 구성되었습니다. 호스트 이름은 점을 포함해야합니다. ✔ Store의 쿠키 도메인 (보안) : 기본 확인-도메인 설정 안함 모든 쿠키 도메인이 동일하게 표시되고 도메인 설정 없음
Denisa

@Denisa 새로운 질문으로 물어 보면 좀 더 운이 좋을 것입니다.
Alan Storm

33

일부 Magento 설치에서 동일한 증상이 나타납니다 (1.9뿐만 아니라). 제 경우에는 Chrome에서만 발생합니다. Firefox / Safari / Opera에 로그인하고 '웹'설정의 '세션 쿠키 관리'에서 'HTTP 만 사용'을 '아니요'로 변경하여이 문제를 해결하고 있습니다.

쿠키 설정이 포함 된 Magento의 백엔드 스크린 샷보기


3
이를 통해 개발 환경을 Chrome에서 실행하는 데 도움이되었지만 프로덕션 환경에서는 이러한 설정을 사용하지 않아야 전체 보안 취약점이 생길 수 있습니다.
Stephen Crosby

세션 쿠키 관리 섹션은 어디에 있습니까?
Aryeh Armon 4:26에

1
또한 쿠키 도메인을 확인하십시오-로컬로 개발 중이며 이것이 내 문제인 것으로 나타났습니다.
Phil Birnie

많은 도움이되었습니다! Chrome에서만 발생한다는 것을 알지 못했습니다. 하하!
jehzlau

4
관리자 패널 액세스없이 설정 Use HTTP only합니다 No. 이 SQL 쿼리를 직접 시작할 수 있습니다 : UPDATE __DATABASE_NAME__. core_config_dataSET value= '0'WHERE core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig

11

나도이 문제가 있었다. var/session디렉토리 자체가로 설정되어 있어도 세션을 작성할 수 없습니다 0777. Magento는 세션 파일을 만들었지 만 모두 0 바이트로 남아있었습니다.

세션 저장소를 변경 하여 문제 filesdb해결했습니다.


이 작동합니다! Magento가 세션을 작성하고 파일에 캐시하지 않는 이유를 이해하지 못합니다. 권한이 맞습니다!
Michelangelo

내 상황을 기억하면 디스크가 꽉 찼거나 세션 디렉토리에 파일이 너무 많았습니다.
Giel Berkers

이것은 나를 위해 작동합니다!
Ner

제 경우 : 세션 저장소를 db에서 파일로 변경하면 문제가 해결되었습니다.
akgola

7
  1. Magento 설치 디렉토리를여십시오. index.php 파일을 찾아서 엽니 다.
  2. error_reporting (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

또 다른 가능한 이유 : harddisk / volume / quota가 가득 차서 세션 데이터를 디스크에 쓸 수 없습니다. 어쩌면 보이지 않을 수도 있지만 방금 두 번째로 일어 났고 알아내는 데 시간이 걸렸습니다.

나는 말할만큼 평판이 좋지 않지만 @Alan Storm은 아마도 당신의 훌륭한 목록에서 이것을 원할 것입니다.


6

나는 최근에 같은 문제가 있었고 간단한 트릭이 나를 위해 일했다. 또한 이것은 Chrome 에서 대시 보드에 액세스 할 수없는 사람들을위한 것입니다 . Mozilla Firefox에서 작업 할 수 있다면 Mozilla firefox에서이 문제가 지속되지 않는 것 같습니다.

따라서 크롬 솔루션은 다음과 같습니다.

고토 시스템 -> 구성 -> 웹 . 안전하지 않은 보안 탭을 확장 하십시오. http://127.0.0.1/[Your folder name]로컬 호스트를 사용 하는 경우 기본 URL을 변경하거나 프런트 엔드에 액세스하는 사이트 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
세션을 제거하기 위해 익명의 창이나 다른 브라우저에서 여는 것을 잊지 마십시오
Martin

3

나는 같은 문제가 있었고 / var / session의 모든 파일을 삭제하여 해결했습니다. 마 젠토 세션이 너무 많아서 그런 것 같아요!


3

알람 스톰 목록이 정확하고 상세합니다. 다음은 몇 가지 추가 사례입니다.

  1. 방랑자 var/session에서 호스트 컴퓨터 에 대한 권한도 확인하십시오
    (마운트 문제).
  2. var / session에 디스크가 가득 찼거나 너무 많은 파일이 있는지 확인하십시오.
  3. 실행 n98-magerun.phar sys:check(쿠키 도메인을 포함한 문제를 포착)
  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

개발 중이고 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

우선 내가 생각하는 캐시를 지우려고 노력하고 이것이 작동하지 않으면 var 폴더에 chmod 700을 만들어보십시오.


1

당신은 당신의 브라우저를 변경할 수 있습니다. 이 오류가 발생하면 브라우저 크롬을 파이어 폭스로 변경했으며 작동합니다.


0

얼마 전 같은 일이 일어 났고 내 문제는 세션에서 나왔습니다. DISK 공간 이 부족 하여에서 세션을 만들고 캐시를 만들 수 없습니다 var/. 나는 물건을 제거하고 모든 것이 효과가있었습니다. 어쩌면 누군가를 도울 것입니다.

건배


0

"var / cache"폴더와 "var / session"폴더를 비워서 캐시를 지우면 문제가 해결되었습니다.

또한 웹 서버를 한 번 후에 다시 시작해야했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.