mod_wsgi和多个项目

时间:2013-01-05 09:15:32

标签: django apache mod-wsgi

在这里撕扯我的头发试图找出为什么我的两个django项目没有被单独提供...似乎首先访问的静态文件成为两个项目的事实静态文件,或类似的效果

我正在尝试通过同一IP地址下的两个域名服务两个项目(实际上是同一个原始项目的不同版本 - 具有不同的数据库和不同的物理位置)。最初我在多个IP地址上尝试了虚拟主机(按端口区分),但是失败了。不幸的是 - 我使用具有不同域名的虚拟主机存在完全相同的问题。

Apache http.conf的virtualhost部分如下:

WSGIApplicationGroup %{GLOBAL}

Listen 80
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin shane.brown@gmail.com
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 shane.brown@gmail.com
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(使用与特定项目位置对应的绝对路径):

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()

同时通过dev服务器(以及使用nginx提供静态文件)在localhost上运行这些工作没有问题。假设我想一次访问一个站点,并重新启动Apache - 每个作品都是在外部以独奏方式提供服务。有什么明显的问题导致这个问题吗?

干杯,谢恩


更新:

此时我必须得出结论,由于mod_wsgi和windows平台的结合不太完美,我不想做的事情(我应该提到平台 - 在我的仓促中被忽略 - windows 7 professional 64)。我不能使用WSGIDaemonProcess,并且WSGIApplicationGroup必须设置为全局,并且从我能够从与此问题相关的讨论中收集 - 这意味着我已经走到了尽头。

我已经设法为第二个项目服务,没有使用nginx&amp; amp; fastcgi而不是...作为权宜之计。到目前为止,这个组合一直善待我。

提供静态文件的nginx和传递给django dev服务器的代理的更加出色的选择也可以作为外部服务的并行安排。还没有同时尝试两个nginx / fastcgi服务版本的项目 - 但我会把它留作另一个令人敬畏的挫折日的练习。

1 个答案:

答案 0 :(得分:0)

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