我只是将我的 Magento 存储移动到我的本地环境以进行测试使用,我也使用 Git 来维护代码,但是在将所有文件移动到本地环境后,我无法登录我的管理页面,但我仍然可以看到我的前端页面和 git 数据库似乎运行良好。
当我在管理页面输入错误的管理员/密码时,它仍然给我“无效密码”。但是当我输入正确的时候,它只是刷新页面并停留在登录页面,没有任何反应。
有没有人遇到过这个问题?有什么想法吗?
提前致谢!
尽管这个问题很老,但在我做了一件额外的事情之前,上述所有答案都对我不起作用。
按照已经发布的非常有用的答案(摘要):
http://127.0.0.1/
为安全和不安全的路径。接着:
http://127.0.0.1/your/site/folder/name/index.php/admin
这是缺少index.php /admin (而不是 using http://127.0.0.1/site/admin
)。
我希望这对其他人有帮助。
最近开始在一个项目中使用 Magento 并遇到了这个问题。网上至少有十种或更多不同的解决方法建议让我感到沮丧,并且需要大量的试验和错误才能找到一个可以完成这项工作的方法。似乎一些变通办法适用于某些版本,而不适用于其他版本。没有人解释问题发生的原因或方式,最流行的解决方案涉及破解代码库或使用不同的 url,这不应该是必要的。
我为 Community Edition 1.9.1.1 找到的最干净的解决方案是在数据库中编辑两个配置值:
update core_config_data set value = NULL where path = "web/cookie/cookie_path";
update core_config_data set value = 0 where path = "web/cookie/cookie_httponly";
在全新安装中,cookie 路径实际上默认为 NULL,但它必须为 NULL 或空字符串。
出现这种行为是因为包括 Chrome 在内的一些浏览器在使用localhost域创建 cookie 时遇到问题,这意味着当 Magento 调用 session_start() 时,会话标识符 cookie 永远不会被创建,因此信息无法在页面之间传递。登录过程实际上是成功的,但下一个请求不知道它,因此您被重定向回登录屏幕。没有错误,因为 Magento 没有考虑这种边缘情况的可能性。
如果在 localhost 上创建 cookie 时没有提供域值,则浏览器没有问题。不幸的是,仅仅将web/cookie/cookie_path设置为 NULL 是不够的,因为 Magento 的配置类将其解析为一个空字符串,这足以在后面的代码中设置一个真实的域:
if (isset($cookieParams['domain'])) {
$cookieParams['domain'] = $cookie->getDomain();
}
这种方法最终使用当前的 HTTP 主机来为 cookie 解析一个真实的域,因此浏览器不想与它有任何关系。但是,如果我们禁用web/cookie/cookie_httponly,那么 Magento 将不会执行此附加步骤,$cookieParams['domain']未设置,并且没有域作为会话参数传递,因此允许创建会话 cookie 并且可以作为他们应该。
请注意,无论何时修改数据库配置,都必须删除 /var/cache/ 的内容才能反映更改。
如果您像我一样不想注释掉代码,甚至不想进行配置更改,那么我创建了一个扩展,它覆盖了上面显示的getDomain()方法,如果我们在本地主机上,则返回 null,这应该会更未来证明并不会造成附带损害。
http://www.mediafire.com/download/q39p4k95s5tlght/LocalCookie.zip
尝试删除缓存文件夹 /var/cache 的内容。清除您的浏览器 cookie 并尝试。此外,如果您从服务器复制了数据库,您可能需要手动更改基本 url(安全和非安全)以及 core_config_data 表中的 cookie 域。如果需要,请手动执行此操作。例如,生产值为http://www.mywebsite.com/的 web/unsecure/base_url变为“http://localhost/”
我曾经有过这个是因为这个或缓存。确保缓存文件夹在 git hub 中被忽略(如果还没有的话)。
1.你需要删除缓存
rm -rf var/cache/* var/session/*
2.更改域形式 core_config_data
update core_config_data set value="http://127.0.0.1/" where path="web/unsecure/base_url";
update core_config_data set value="http://127.0.0.1/" where path="web/secure/base_url";
执行以下步骤:
1:通过:xampp\htdocs\magento\app\code\core\Mage\Core\Model\Session\Abstract**
2:打开 **Varien.php文件
3:将注释行号从87 改为104保存并尝试登录...
有同样的问题,但修复是改变数据库值:
UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/unsecure/base_url';
UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/secure/base_url';
然后在浏览器中http://127.0.0.1/example/admin
同样的问题!我在 core_config_data 表中删除/替换静态域后解决了我的问题
网络/安全/base_url
网络/安全/base_link_url
网络/安全/base_skin_url
网络/安全/base_media_url
对我来说,在 IIS 上运行它(我知道,没有官方支持):
虽然其他建议有点用,但我发现最好的解决方案是为我的域输入一个新的 A 记录,例如
127.0.0.1 local.example.com
然后在 IIS 中添加绑定
local.example.com
到我的网站,它运行良好。
我发现实际尝试登录客户帐户而不是管理员帐户时出现错误,但相信它仍然适用。