Magento 1.9管理パネルにログインできません!


99

Magento 1.9をインストールしました。それは一週間うまくいきました。昨日突然、Magento管理パネルにログインしようとして「」と入力usernamepassword、「ログイン」ボタンをクリックしても何も起こりませんでした。ページが更新され、それだけです。エラーやその他のメッセージはありません。

間違ったユーザー名またはパスワードを入力した場合、エラーが表示されます。

この問題についてGoogleで調べた後、次の行をコメントすることをお勧めします。

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を介してキャッシュとセッションをクリアしようとしました)。


ブラウザのキャッシュ/ Cookieをクリアしてもう一度お試しください。
アラメル14

app/code/local/Mage/Core..blahblah編集用にコアファイルをコピーして、Magentoがコアファイルをオーバーライドするようにします。バージョン管理にもgitを使用します。これは天の恵みです。
クリスK 14


1
Chromeを使用している場合、キーF12>リソース> Cookies>ドメインを右クリック>クリア。
rybo111

回答:


122

そのようなコアコードの変更を停止します。一時的に問題を解決できますが、追跡するのがほとんど不可能な将来の問題を作成する可能性があります。

ありますさまざまな問題の数あなたが見ているエラーのない管理ログインの挙動を引き起こす、それらはすべて設定またはセッションクッキーを読むことができなくMagentoのに戻ります。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サーバードメインとして使用し、localhost状況によってはCookieを設定するトラブル/バグがあるバージョンのWebkitを使用しています。

短期的な修正は、ドメインのCookieを削除することです。多くの場合、問題を解決するのに十分です。解決しない場合は、上記の理由のいずれがエラーの原因であるかを特定し、それに対処するための手順を実行します(アクセス許可の修正など)。


7
n98-magerunのsys:checkコマンドを使用して、CookieドメインとベースURLの問題を見つけることができます。magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench 14

1
@アラン・ストーム、明確な説明をありがとう。問題を解決しました。私の場合、問題の理由は3番目です。
SIBHI S 14

4
私の場合、サーバーに十分なディスク容量がありませんでした。したがって、考えられる原因としてこれを追加することができます。
サイモン

@cmuenchそのコマンドを実行しましたが、結果がわかりません:無効な安全でないBaseURLストア:デフォルトの間違ったホスト名が設定されています。ホスト名にはドットを含める必要があります✖無効な安全でないBaseURLストア:フランス語の間違ったホスト名が設定されています。ホスト名にはドットを含める必要があります✖無効な安全でないBaseURLストア:sot_eng間違ったホスト名が設定されています。ホスト名にはドットを含める必要があります✖無効な安全でないBaseURLストア:sot_fra間違ったホスト名が設定されています。ホスト名にはドットを含める必要があります✔ストアのCookieドメイン(セキュリティで保護された):デフォルトOK-ドメイン設定なしすべてのCookieドメインは同じOKおよびドメイン設定なしに見える
-Denisa

@Denisa新しい質問としてそれを尋ねると、もう少し幸運があります。
アランストーム

33

一部のMagentoインストール環境でも同じ症状が見られます(1.9だけではありません)。私の場合、それはChromeでのみ発生します。Firefox / Safari / Operaにログインし、「Web」設定の「セッションCookie管理」で「HTTPのみを使用」を「いいえ」に変更することでこれを修正しています。

Cookieの設定を含むMagentoのバックエンドスクリーンショットをご覧ください


3
これにより、開発環境をChromeで実行できるようになりましたが、実稼働環境ではこれらの設定を使用しないでください。これにより、クラス全体のセキュリティ脆弱性が開かれます。
スティーブンクロスビー14年

セッションCookie管理セクションはどこにありますか?
アーライアーモン

1
Cookieドメインも確認してください-私はローカルで開発していましたが、これが私の問題であることがわかりました。
フィルバーニー

私を大いに助けてくれました!これがChromeでのみ起こることを決して知らなかった。ハハ!
-jehzlau

4
管理パネルにアクセスせずに設定Use HTTP onlyするにはNo。このSQLクエリUPDATEを直接起動できます__DATABASE_NAME__core_config_dataSET value= '0' WHERE core_config_datapath= 'web / cookie / cookie_httponly';
ノルウェンニグ

11

私もこの問題を抱えていました。var/sessionディレクトリ自体がに設定されていても、セッションに書き込みができないことが判明しました0777。Magentoはセッションファイルを作成しましたが、すべてゼロバイトのままでした。

セッションストレージをからfilesに変更するとdb、問題が解決しました。


これは動作します!Magentoがファイルにセッションとキャッシュを書き込まない理由がわかりません。許可は正しいです!
ミケランジェロ

私の状況を思い出すと、ディスクがいっぱいか、セッションディレクトリのファイルが多すぎるかのいずれかでした。
ゲルバーカーズ

これは私のために働く!
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

別の考えられる理由:ハードディスク/ボリューム/クォータがいっぱいであるため、セッションデータをディスクに書き込むことができません。ありそうもないように思えるかもしれませんが、私にとっては2度目に起こり、理解するのに時間がかかりました。

コメントするほどの評判はありませんが、@ Alan Storm、これを素晴らしいリストに載せたいと思うかもしれません。


6

私は最近同じ問題を抱えており、簡単なトリックがうまくいきました。また、これはGoogle Chromeのダッシュボードにアクセスできない人向けです。Mozilla Firefoxで作業できる場合は、そうしてください。この問題はMozilla firefoxでは永続的ではないと思います。

したがって、クロムの解決策は次のとおりです。

「システム」- >「構成」->「Web」に移動します。[非セキュア ]タブ [ セキュア ]タブを展開します。http://127.0.0.1/[Your folder name]localhostを使用している場合はベース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
セッションを削除するために匿名ウィンドウまたは別のブラウザで開くことを忘れないでください
マーティン

3

私は同じ問題を抱えていたので、/ var / sessionのすべてのファイルを削除することで解決しました。Magentoでのセッションが多すぎるためだと思います!


3

アラームストームリストは正確かつ詳細です。以下にいくつかの追加のケースを示します。

  1. Vagrantで、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を使用すると、サードパーティの拡張機能(firewall / security拡張機能)も異なります。何度も試してみるとブラックリストに載っています。

セッションが元々権限の問題で機能していないが、元の問題を修正した後でも失敗し続ける場合に発生する可能性があります

特定のケースでは、admin_session_user_login_successほとんどのセキュリティ/ファイアウォールモジュールがこのイベントを使用するため、イベントに注意してください。$_SESSION['admin']オブザーバーによって変数がリセットされた場合は特に注意してください


2

フォームキーが存在することも重要です。存在しない場合、フォームは処理されません。

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

2

この問題の簡単な解決策は、localhostの代わりにホスト名としてhttp://127.0.0.1を使用することです。

問題は管理者にログインできないことであるため、データベースのタブでcore_config_dataの安全なベースURLと安全でないベースURLを変更する必要があります。

これにより、n98-magerunのsys:checkで baseurlが検証されます


2

で開発しlocalhostていて、ドメイン名をlocalhostに設定または変更した場合はcore_config_data127.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’;

必要に応じてユーザーとパスワードの単語を置き換えます。



1

あなたはあなたのブラウザを変更することができます。このエラーが発生したとき、ブラウザのクロムをFirefoxに変更しました。


0

しばらく前にも同じことが起こり、私の問題はセッションから生じました。からセッションとキャッシュを作成するための十分なDISKスペースがありませんでしたvar/。いくつかのものを取り除いたところ、すべてが機能しました。たぶんそれは誰かを助けるでしょう。

乾杯


0

フォルダ「var / cache」と「var / session」を空にしてキャッシュをクリアしてみてください。これで解決しました。

また、一度ウェブサーバーを再起動する必要がありました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.