簡體   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