2009-10-08 59 views
1

除了沒有將Django項目部署到網站根目錄之外,從一個位置運行Django項目還有什麼特別的好處。 /var/django-projects/** xxxxx-project/vs(在共享託管環境中)在域文件夾中運行每個Django項目,例如**/vhost/mydomain.com/xxxxx-project?Django項目在系統上存在的位置是否重要?

回答

2

無所謂 - 選擇一個適合您需求的組織。

我在創建服務器來處理多個Django站點時大致遵循this指南,並且我喜歡它使用的文件夾組織。一對夫婦的好處:

  • 所有Django的網站是在一個特殊的Django用戶的主目錄
  • 有一個域的文件夾,然後爲包含Django的項目,日誌,WSGI文件每個站點文件夾,及其他文件
  • VirtualHost容器分別位於自己的文件中,可以控制httpd.conf。
1

實際上,只要你保持一致,你應該放在哪裏。

我認爲這種或那種方式最大的爭論將歸結爲文件系統權限和相關文件的位置。如果您允許項目中的不同用戶進行開發,但希望限制其範圍,那麼分割將更有意義。

1

除了您提到的範圍外,即它不應位於任何站點的DocumentRoot下。

您還應該確保WSGI腳本文件與Django設置文件不在同一目錄中,因爲這樣做通常會讓您向Apache表明該目錄可以由Apache提供。這可能不會發生,因爲不會有Alias指令將URL映射到該目錄,但是您仍然從Apache安全性中移除了一層保護。

因此,遵循準則:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

,並在目錄自身不具有源代碼在所有其下的WSGI腳本文件,或者在該WSGI腳本文件Django項目之外的完全不同的目錄,它只包含Apache技術上允許提供的其他文件的腳本文件。

基本規則是不以任何目錄,其堅持的源代碼(除WSGI腳本文件):

Allow from all 

已被Apache配置的方式定義。

當然,上面部分假設您使用的是mod_wsgi。 :-)

相關問題