2013-01-05 35 views
5

在這裏撕掉我的頭髮試圖弄清楚爲什麼我的兩個django項目沒有被單獨提供......看起來,靜態文件(無論哪個先被訪問)都成爲兩個項目的事實上的靜態文件,或者類似的效果。mod_wsgi和多個項目

我試圖通過關閉相同IP地址的兩個域名服務兩個項目(實際上是同一原始項目的不同版本 - 具有不同的數據庫和不同的物理位置)。最初我嘗試了多個IP地址上的虛擬主機(通過端口區分),但失敗了。不幸的是 - 我使用具有不同域名的虛擬主機具有完全相同的問題。

Apache的http.conf中的虛擬主機部分是這樣:

WSGIApplicationGroup %{GLOBAL} 

Listen 80 
NameVirtualHost *:80 

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName www.toastprojects.tk 
WSGIScriptAlias/"C:/Python27/sites/Adaptwater/adaptwater/wsgi.py" 
Alias /static/ "C:/Python27/sites/Adaptwater/static/" 
</VirtualHost> 

<Directory "C:/Python27/sites/Adaptwater/static/"> 
Order deny,allow 
Allow from all 
</Directory> 

<Directory "C:/Python27/sites/Adaptwater/adaptwater/"> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName toastprojects.power.on.net 
WSGIScriptAlias/"C:/git_clones/adaptwater/adaptwater/adaptwater/wsgi.py" 
Alias /static/ "C:/git_clones/adaptwater/adaptwater/static/" 
</VirtualHost> 

<Directory "C:/git_clones/adaptwater/adaptwater/static/"> 
Order deny,allow 
Allow from all 
</Directory> 

<Directory "C:/git_clones/adaptwater/adaptwater/adaptwater/"> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

我已經建立了wsgi.py爲每個AS左右(對應於特定項目的位置的絕對路徑):

import os, sys 

sys.path.append('C:/git_clones/adaptwater/adaptwater') 
sys.path.append('C:/git_clones/adaptwater') 
#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "adaptwater.settings") 
os.environ['DJANGO_SETTINGS_MODULE'] = "adaptwater.settings" 

from django.core.wsgi import get_wsgi_application 

application = get_wsgi_application() 

在本地主機上通過開發服務器(以及與nginx服務靜態文件)在同一時間運行這些工作沒有問題。假設我想一次訪問一個網站,並重新啓動Apache - 每個作品都是以獨奏方式在外部進行的。任何明顯的問題導致這個問題?

歡呼聲中,巴蒂爾


更新:

在這一點上,我不得不得出結論,就是我想做的事不能做,由於不足的mod_wsgi的完美幸福的婚姻和Windows平臺(我應該提到這個平臺 - 忽視了我的急速 - windows 7 professional 64)。我不能使用WSGIDaemonProcess,並且必須將WSGIApplicationGroup設置爲全局的,並且從我已經能夠從與此問題相關的討論中收集到的信息 - 這意味着我處於死衚衕。

我已經設法服務第二個項目,沒有奇怪的設置使用nginx & fastcgi代替...作爲權宜之計。到目前爲止,這個組合一直在善待我。

nginx提供的靜態文件和代理傳遞給django dev服務器的更加出色的選項也可以作爲外部服務的並行安排。還沒有同時嘗試兩個nginx/fastcgi服務版本的項目 - 但我會把它作爲另一個令人沮喪的日子的鍛鍊。

回答

0

您必須在相應的<virtualhost>配置指令中包含您的<directory>配置指令。

+0

謝謝!會給那個紅熱的去。 – toasterleavings

+0

這是來自一箇舊項目,但應該有你需要的一切:[apache.conf](https://github.com/twoolie/ProjectNarwhal/blob/master/example_project/apache.conf) – Thomas