1

将功能齐全的 Drupal 7 站点和相应的数据库迁移到新服务器。我无法登录到管理员端。错误消息是:“访问被拒绝。您无权访问此页面。” 用户名和密码已通过验证。

我查看了 /admin/reports/dblog,错误日志显示每次登录 2 个条目。一个条目显示会话是为正确的用户名打开的,另一个条目显示访问被拒绝并且用户是“匿名的”。我的假设是 Drupal 无法验证用户,因此它将用户指定为匿名用户。

我阅读了许多关于类似问题的论坛主题。我在“settings.php”中注释掉了“$cookie_domain”,但仍然没有。我回头查看了正在运行的站点,发现生成了 2 个 cookie:“has_js”和一个会话 ID cookie。在新站点中,仅生成“has_js”cookie(使用 Firefox 和 Chrome 浏览器)。我已验证会话 ID 已保存到数据库中的会话表中。

我已经研究过修改“php.ini”(etc/php5/apache2/php.ini),但没有找到保存会话 id cookie 的解决方案。

Drupal 7 Linux 服务器 Ubuntu 12.04 Apache 2.2.22 MySql 14.14 PHP 5.3.10

4

4 回答 4

2

取消注释 settings.php 上的第 340 行以反映您的域名

例如对于本地主机

$cookie_domain = 'localhost';

请注意,这适用于 drupal 7,我的 php 版本是 5.6。

问候,

于 2015-01-13T09:36:11.403 回答
1

我遇到了同样的问题,除了我可以在 Chrome ( Settings -> Show Advanced Settings -> Content Settings -> All Site Cookies and Data) 中看到会话 cookie。cookie 的“发送至”属性设置为“仅安全连接”,并且我的网站在 HTTP / 端口 80 上运行。因此浏览器不会将 cookie 发送回网络。

问题原来是 php.ini 中的这一行:session.cookie_secure = 1

设置此选项后,PHP 将指定 cookie 只能通过安全 (HTTPS) 连接发送。这使得发起中间人攻击变得更加困难,因为 cookie 不再通过明文发送。

有两种方法可以解决此问题: 1) 将站点切换到 HTTPS。2) 在 php.ini 中,设置session.cookie_secure = 0

于 2014-11-02T13:40:35.440 回答
1

将 drupal 安装从服务器迁移到另一个服务器时,可能会出现几个问题。

1)检查您的文件权限,因为有时我们将文件从服务器迁移到另一个服务器并且具有不同的所有者:组,这会产生严重的问题。

2)您需要在迁移之前删除所有缓存以避免访问问题和使用缓存中的错误url等,在您的情况下您已经迁移了Drupal,所以您需要去数据库并删除所有cache_*数据库的内容。这可以帮助你。

3)如果不是,您需要查看您使用的 php 版本以及 mysql 和 apache 可能是一些已弃用的功能。

于 2013-10-07T14:28:48.057 回答
0

我有同样的问题。第一个答案中的第 3 个救了我 - 我最近将 MAMP PHP 版本更改为 5.6,这似乎是导致问题的原因。恢复到 5.5 意味着我现在可以登录了。

于 2015-01-09T14:45:09.337 回答