将 Drupal 7 站点移至其他服务器,无法登录
Posted
技术标签:
【中文标题】将 Drupal 7 站点移至其他服务器,无法登录【英文标题】:Moved Drupal 7 site to a different server, can't log in 【发布时间】:2011-12-28 20:17:13 【问题描述】:我最近将我的 Drupal 7 站点移到了新的托管服务器上,但我卡在了登录页面。一旦我尝试登录,我就会被引导回到同一页面,但 URL 从 /user
更改为 /user/1
,这让我相信我实际上已登录,但我没有被转发到正确的页面。
我尝试清理缓存,清空数据库中的缓存表,但没有任何帮助。
有什么想法吗?
编辑:为了让事情更清楚一点,我已经将特定服务器用于各种其他 Drupal 7 站点,所以我知道服务器配置在这里没有问题。
【问题讨论】:
将不胜感激解释为什么该问题被否决。 尝试询问服务器故障。 *** 用于编程问题。看这里 - ***.com/about @AntonyScott 所以仅仅因为我的问题中有“服务器”这个词,你就认为它属于其他地方吗?这与服务器配置无关。 嘿,我没有对你投反对票。别人做了。但是,我不得不说,我在您的问题中看不到与编程相关的问题。但我不是 Drupal 专家 :) 您可以通过包含一些您怀疑导致问题的源代码来改进问题。但是,这可能是转移到 serverfault 或 webmaster 的候选者。您说这与服务器配置无关,但您也说这仅在您切换服务器时才开始,因此识别两台服务器之间的差异似乎是一个合理的起点。 【参考方案1】:我怀疑您在/sites/default/settings.php
中的$cookie_domain
不正确。
尝试使其与您的新域匹配,并确保有一个前导点 .
$cookie_domain = '.mydomain.co.uk';
【讨论】:
@leo - 您的网站是否有www.
前缀,例如www.mydomain.co.uk
?这对我不起作用,但我没有 www 前缀......
.mydomain.co.uk
涵盖所有域前缀,即www
或mysubdomain
。如果您未登录,也可能值得使用 Drush 清除缓存
我在 demo.domain.com/subdirectory 上有一个站点,我必须设置 $cookie_domain = '.domain.com';谢谢你的提示!【参考方案2】:
有时与站点迁移后登录相关的问题可能是因为在第一台机器上启用了 mod_rewrite 而不是第二台机器。一个简单的测试方法是使用 ?q= URL 格式 (http://site.localhost?q=user) 并查看是否可以这样登录。如果可行,那么您可以在 Drupal 界面中禁用干净的 url,或者在 Apache 中启用 mod rewrite。
【讨论】:
解决了我的问题。谢谢。只是想在 Apache 上添加用于启用 Rewrite 模块的命令:“sudo a2enmod rewrite”并在此命令之后重新启动 apache:“sudo service apache2 restart” 这种方法确实帮助我解决了这个问题,正如 Qorbani 评论的那样,可以使用命令a2enmod rewrite
启用 mod_rewrite,然后重新启动 apache 服务。
@seddonym,你拯救了我的一天。现在花了大约 10 个小时来寻找那个讨厌的问题。已清除缓存、截断会话表、添加 cookie_domain 设置、删除 cookie 等等。但是那个人成功了。非常感谢。【参考方案3】:
在我的情况下,仅在刷新 drupal 根文件夹中的 .htaccess 文件后问题才得以解决。 你可以在这里取源码:https://github.com/drupal/drupal/blob/7.x/.htaccess
【讨论】:
【参考方案4】:seddonym 对 mod_rewrite 的评论让我找到了一个稍微不同的解决方案。我遇到了同样的问题,但能够通过将文件 rewrite.load
从 /etc/apache2/mods-available
复制到 /etc/apache2/mods-enabled
来解决它。
我认为 mods-enabled 中的文件是某种链接文件(我还是 linux 新手)但复制文件工作得很好。也许有人会过来告诉我们这样做的正确方法。
【讨论】:
【参考方案5】:有时您只需要清除域/网站的 cookie - 可能是您有旧的 cookie 导致了这种情况。
获取一个 cookie 管理器来帮助简化此过程,例如:
Edit This Cookie (for Chrome)
【讨论】:
【参考方案6】:其他答案可能是未安装 rewrite php 模块,请执行以下操作:
sudo a2enmod 重写
重启apache2
sudo service apache2 重启
【讨论】:
【参考方案7】:在我的情况下,这是非常愚蠢的,在我的 page.tpl.php 上,没有任何“内容”并且页面--user.tpl.php 没有被读取。只有在 page.tpl.php 中显示内容的行
虽然你不太可能像我一样愚蠢。 ;) 无论如何,它可能会有所帮助。
阿恩
【讨论】:
没有任何内容是什么意思?你的文件大小是 0 字节吗? 不见了。我看到了标签,因为 包括在内。就像我说的,愚蠢的......但两年后你有时会忘记一些事情。 :p以上是关于将 Drupal 7 站点移至其他服务器,无法登录的主要内容,如果未能解决你的问题,请参考以下文章
将 WordPress 站点移至 Docker,并最终移至服务器
曾为boston.gov提供代码。截至2019年11月,已移至Drupal 8。