繁体   English   中英

一个Apache上的多个Django管理站点...当我登录一个时,我会从另一个登录

[英]Multiple Django Admin Sites on one Apache… When I log into one I get logged out of the other

我有两个Django项目和应用程序在同一个Apache安装上运行。 项目和两个应用程序都具有相同的名称,例如myproject.myapplication。 它们分别位于单独命名的目录中,因此它看起来像... / dir1 / myproject / myapplication和... / dir2 / myproject / myapplication。

关于实际面向公众的应用程序的一切工作正常。 当我登录任何一个管理站点时,它似乎没问题,但如果我切换并在对方管理站点上做任何工作,我将退出第一个。 简而言之,我无法立即登录这两个管理站点。 任何帮助,将不胜感激。

设置SESSION_COOKIE_DOMAIN选项。 您需要为每个站点设置域,以便cookie不会相互覆盖。

您还可以使用SESSION_COOKIE_NAME为每个网站设置不同的Cookie名称。

我在同一个Apache服务器(在CentOS上)托管的实时和暂存站点遇到了类似的问题。 我为每个网站的设置添加了唯一的SESSION_COOKIE_NAME值(在local_settings.py中,如果没有,则创建一个并在settings.py中导入),为实际网站设置SESSION_COOKIE_DOMAIN并为暂存设置SESSION_COOKIE_DOMAIN =无。 我还运行“python manage.py cleanup”来(希望)清除数据库中的任何冲突信息。

好吧,如果他们有相同的项目和应用程序名称,那么数据库和表将是相同的。 保存会话信息的django_session表对于两个站点都是相同的。 您必须使用不同的MySQL(或其他)数据库中的不同项目名称。

会话信息存储在数据库中,因此如果您与两个正在运行的实例共享数据库,则注销一个位置将使您同时注销。 如果您的情况需要您共享数据库,最简单的解决方法可能是创建具有管理员权限的第二个用户帐户。

让我猜一下,这是在你的本地主机上运行吗? 并且您将每个站点分配到不同的端口? 即localhost:8000,localhost:8001 ..?

我遇到了同样的问题! (虽然我本身并没有运行Apache)

当您登录管理站点时,您在浏览器中获得与域“localhost”相关联的cookie,cookie会将某种指针存储到服务器上数据库中存储的会话中。

当您访问其他站点时,服务器会尝试解释cookie,但会失败。 我猜它会删除cookie,因为它是“垃圾”。

在这种情况下,您可以做的是更改您的域名

第一个站点使用localhost:8000,第二个站点使用127.0.0.1:8001。 这样,第二个站点不会尝试读取第一个站点设置的cookie

我还认为如果需要,您可以编辑HOSTS文件以向127.0.0.1添加更多别名。 (但我没试过这个)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM