2013-11-20 34 views
1

我需要把Django的CMS不同的Django項目相同的域下,例如:是否可以在同一個域下託管多個django項目?

  • example.com/2012/
  • example.com/2014/

通常我對每個域/項目使用virtualenv和mod_wsgi。我將需要不同的數據庫,媒體文件和Django版本。

將項目置於不同子域下不是一個選項。

可以嗎?我應該如何設置服務器?有什麼需要注意的嗎?

回答

2

是的。

您可以配置Apache/mod_wsgi以重寫URL並將它們定向到不同的WSGI文件。這使您可以爲每個站點設置完全不同的virtualenvs,數據庫和Django版本。例如:

WSGIScriptAlias /2012/ /location/to/my/files/website1.wsgi 
WSGIScriptAlias /2014/ /location/to/my/files/website2.wsgi 

每個WSGI文件可以再直接執行的文件在自己的Django的版本和設置特定的virtualenv。

如果你可以放寬你需要不同的Django版本的約束,那麼你可以使用django.contrib.sites框架。這允許您爲每個「網站」定義多個對象,每個對象一次。然後,您可以在運行Django的一個安裝時將內容與每個網站相關聯。

+0

正如我之前寫的,這將是兩個不同的項目與不同的Django版本:其中一個作爲存檔網站,另一個作爲實際網站。所以我不會使用網站框架來分開它們。 –

+0

@AidasBendoraitis這是公平的,我剛剛提到它讓你意識到。在這種情況下,第一次設置多WSGI設置應該做你需要的。 –

+0

我需要如何爲這些項目定義urls.py?從'「^ 2012 /」'開始或者僅僅是之後的內容? –

相關問題