无法登录Magento admin

时间:2012-01-31 06:48:28

标签: magento admin

我在一个子目录中安装了magento。 www.domain.com/subdir/magento

此网站在某一方面表现完美。我一无所知,直到我的客户说他无法登录magento admin。

我从我的计算机上登录得很好,但是在他的计算机上它只是重定向回magento管理员登录而没有错误消息和一个看起来像这样的傻瓜的网址:

http://domain.com/subdir/magento/index.php/admin/index/index/key/3097210b826ac4a86d7531cb4089c9d0/

我认为他的饼干被封锁了,但事实并非如此。

我的magento设置是安全/不安全的baseurl:http://domain.com/subdir/magento/

web cookie path: (blank)
web cookie domain: (blank)

清除var / cache之后,我发现我自己无法登录管理员,但问题完全相同。

我没有运气就尝试了以下设置:

path: /
domain: domain.com

path: /subdir/magento
domain: vigrond.com

我也尝试在Varien.php中评论这些行,但这也没有效果。

我的服务器帐户是VPS,并且有足够的可用空间。

所以我几乎迷失了,想知道为什么这种事情发生在它之前的第一位(没有改变任何东西),为什么它如此复杂?

任何帮助表示赞赏

12 个答案:

答案 0 :(得分:15)

如果未显示登录错误消息(“无效密码”等),则几乎总是会话cookie问题。为了完全统治它,请使用浏览器的cookie查看器和/或您喜欢的HTTP流量嗅探器并检查

  1. 所有Cookie在设置后都有正确的到期日期

  2. 会话cookie对每个请求都有一致的令牌名称/值

  3. PHP通过Magento运行时,各种会话生命周期ini设置合理值

  4. PHP可以将其用作cookie存储介质的任何内容写入

  5. 服务器的时间与实时相匹配,并且PHP本身设置了时区

答案 1 :(得分:11)

查找app / code / core / Mage / Core / Model / Session / Abstract / Varien.php。在您的Magento安装文件夹中。注释出行(见下文)80到83.行号可能会有所不同。

    // set session cookie params
    session_set_cookie_params(
        $this->getCookie()->getLifetime(),
        $this->getCookie()->getPath()//,
        //dependes which versin of mage you are using, you may comment these as well
        //$this->getCookie()->getDomain(),
        //$this->getCookie()->isSecure(),
        //$this->getCookie()->getHttponly()
    );

这是缓存问题。最近Magento社区确认已经排序,但事实并非如此。 :)

只需清除缓存并执行此步骤即可。

注意这一行

//        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();
//        }
  • 确保您的浏览器启用了Cookie,尝试了一些 不同的浏览器,包括Safari或Opera。 Chrome会给一些 问题,您需要记住清除Chrome后的缓存 做出改变!

  • 确保您的文件权限设置为EVERYONE - 适用于Windows的全面控制和适用于Mac / Linux环境的777如果仍然无效,您可以尝试:(我不建议使用此解决方案Magento的生产版本,但对于您本地的测试环境,这将有效。)

  • 检查您正在使用的php版本。如果您使用的是最近的Magento,请尝试查找哪个版本的PHP和扩展程序需要。

More details

答案 2 :(得分:4)

您是否删除了var目录中的会话存储?

在我的情况下,当我在子域上玩多线圈的自动化(更改路径和域的cookie)时,这种方法帮助我删除了“坏”cookie并成功登录admin:

在apppath / var / session目录下我在shell中创建了命令(小心路径,这可能会删除目录中的所有文件)

rm -rf /path/to/magento/var/session/*

然后在浏览器中清除域中的cookie。

答案 3 :(得分:1)

我从未解决过这个问题。但我擦除了客户端计算机并重新安装了Windows 7,它运行良好。很奇怪之前它没有工作,因为他没有代理,没有广告或病毒。并且在他的每个浏览器(chrome firefox和IE)中重现了这个问题。这不是路由器问题。这是一个Windows问题,但我无法告诉你究竟是什么造成了它。当我检查那些时,它也不是互联网安全设置。还检查了主机文件。正如我之前所说,非常莫名其妙

答案 4 :(得分:1)

我今天在本地服务器上正在与这个问题作斗争。我无法使用任何浏览器登录。我真的不想评论核心文件中的任何行或做任何其他“脏”的解决方案。

首先我检查了浏览器设置的cookie。它的到期时间设定为1970年,显然这是一个cookie问题。

我在magento数据库中检查了cookie的值。在phpmyadmin中,我找到了表 core_config_data ,然后是值为 web / cookie / cookie_domain web / cookie / cookie_path 的字段。他们都是空白的。

我的解决方案是设置:

web / cookie / cookie_domain 到我的域名

web / cookie / cookie_path 到/。

示例:

运行magento的域名是 magento.local 设置:

web / cookie / cookie_domain = magento.local

web / cookie / cookie_path = /

答案 5 :(得分:0)

我遇到了同样的问题,但我正在 Windows 7 x64 上进行 XAMPP

在Magento系统中 - 配置 - 网络会话Cookie管理更改仅使用HTTP no Cookie生命周期86400

我只更改了Cookie Lifetime,以防夏令时间可能无需更改。

在更改之前,我只能使用Firefox登录,并且在更改后所有浏览器都能正常工作。

Cookie路径 Cookie Domain 留空。

答案 6 :(得分:0)

检查 core_config_data 表中的Cookie配置,并检查您的会话是否保存在 db 上。就我而言,有人刚刚用错误的值更改了cookie域和cookie路径。

您还可以在app / etc / local.xml中的节点上进行检查。 如果它在db上,也许您应该更改do 文件以便能够直接在var / session目录上清理会话数据。

答案 7 :(得分:0)

从浏览器设置中删除Cookie(与您的域名相关)。

答案 8 :(得分:0)

我遇到了同样的问题,最后我发现它是由于完整的磁盘空间而导致Magento无法在var var / session文件夹中创建会话文件。清理完问题后的日志文件已解决。

答案 9 :(得分:0)

此外,如果上面的其他内容都不起作用且你需要绝望的访问权限,你可以更新数据库中的密码:

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

根据您的需要更换用户和密码字。

答案 10 :(得分:0)

如果无效,请确保未超过磁盘配额。如果超出用户的磁盘配额,则在./var/session下创建的新会话cookie将为零字节长度。

答案 11 :(得分:-1)

如果你没有看到任何名为“frontend”或“adminhtml”的cookie,当你重新加载页面时,没有设置Magento cookie。在我的情况下,我有一个错误的cookie_domain。 我使用“null”而不是“NULL”。

当我在cookie_domain中将NULL设置为core_config_data时,问题就解决了