Drupal 7 访问拒绝管理面板



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

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

我阅读了许多关于类似问题的论坛主题。我在"设置.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 7Linux服务器乌班图12.04阿帕奇 2.2.22MySql 14.14PHP 5.3.10

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

例如,对于本地主机

$cookie_domain = 'localhost';

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

问候

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

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

2(您需要在迁移之前删除所有缓存,

以避免出现访问问题和从缓存中使用错误的url等,在您的情况下,您已经迁移了Drupal,因此您需要转到数据库并删除所有cache_*数据库的内容。这可以帮助您。

3(如果没有,您需要查看您一直在使用的PHP版本以及MySQL和Apache可能一些已弃用的功能。

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

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

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

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

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

最新更新