5

在这里扯我的头发,试图弄清楚为什么我的两个 django 项目没有单独提供服务......似乎首先访问的静态文件成为两个项目的事实上的静态文件,或者类似效果的东西。

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

Apache http.conf 的虚拟主机部分如下:

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

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

干杯,谢恩


更新 :

在这一点上,我不得不得出结论,由于 mod_wsgi 和 windows 平台的结合并不完美(我应该提到这个平台——我匆忙忽略了——windows 7 专业版 64),所以我想做的事情无法完成。我不能使用 WSGIDaemonProcess,并且必须将 WSGIApplicationGroup 设置为全局,并且从我从与此问题相关的讨论中收集到的信息中,这意味着我处于死胡同。

我已经设法使用 nginx 和 fastcgi 代替奇怪的设置混合来服务第二个项目......作为权宜之计。到目前为止,这个组合一直对我很好。

nginx 服务静态文件和代理传递到 django 开发服务器的更不重要的选项也可以作为外部服务的并行安排。还没有同时尝试两个 nginx/fastcgi 服务版本的项目 - 但我将把它作为练习留给另一个令人沮丧的一天。

4

1 回答 1

0

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

于 2013-02-13T05:34:04.600 回答