django - mod_wsgi 和多个项目

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

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

干杯,谢恩

更新 :

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

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

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

最佳答案

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

关于django - mod_wsgi 和多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14170337/

相关文章:

linux - Apache2 whith mod_wsgi python3 'TypeError:' 并返回错误 500

Django Apache mod_wsgi 500

python - 从权限名称列表添加权限

django - ubuntu18.04中无法通过url连接mongodb

apache - 如何在 solr 7 中设置身份验证机制?

node.js - .htaccess 路由到 Node App

python - Django 将 URL 重定向到绝对 URL

django - 在 Django 中使用非托管表运行测试

Apache 子域重定向到 Tomcat

python + Django : unable to find module with Popen