将功能齐全的Drupal 7站点和相应的数据库迁移到新服务器。我无法登录管理员端。错误消息是:“拒绝访问。您无权访问此页面。“用户名和密码已经过验证。
我查看了/ admin / reports / dblog,错误日志显示每次登录2个条目。一个条目显示会话打开正确的用户名,另一个条目显示访问被拒绝,用户是'匿名'。我认为Drupal无法验证用户,因此它将用户指定为匿名用户。 / p>
我在类似问题上阅读了很多论坛主题。我在'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
答案 0 :(得分:2)
取消注释settings.php上的第340行以反映您的域名
e.g。对于localhost
$cookie_domain = 'localhost';
请注意这适用于drupal 7,我的php版本是5.6。
此致
答案 1 :(得分:1)
将drupal安装从服务器迁移到另一个时,可能会出现几个问题。
1)检查您的文件权限,因为有时我们会将文件从服务器迁移到另一个并拥有不同的所有者:group,这会给您带来严重问题。
2)您需要在迁移之前删除所有缓存以避免访问问题并在缓存中使用错误的URL等等,在您已迁移Drupal的情况下,您需要转到数据库并删除所有缓存的内容_ *数据库。这可以帮到你。
3)如果不是你需要查看你一直在使用的php版本,mysql和apache可能会有一些不赞成使用的功能。
答案 2 :(得分:1)
我遇到了同样的问题,但我可以在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 :(得分:0)
我遇到了同样的问题。第一个答案的第3个保存了我 - 我最近将我的MAMP PHP版本改为5.6,这似乎导致了这个问题。恢复到5.5意味着我现在可以登录。