一个Apache上多个django实例的当前目录
我们正在尝试在同一个Apache服务器上运行多个django实例。所有站点共享相同的代码和设置文件,但具有不同的wsgi.py工作目录,以及具有databaseparameters和不同数据库的configfile。Django的版本是1.6.2。布局如下:一个Apache上多个django实例的当前目录,django,apache,Django,Apache,我们正在尝试在同一个Apache服务器上运行多个django实例。所有站点共享相同的代码和设置文件,但具有不同的wsgi.py工作目录,以及具有databaseparameters和不同数据库的configfile。Django的版本是1.6.2。布局如下: /bin/manage.py /tttb/settings.py /site1/wsgi.py /config.txt /site2/wsgi.py /config.txt 以下是httpd.conf的当前
/bin/manage.py
/tttb/settings.py
/site1/wsgi.py
/config.txt
/site2/wsgi.py
/config.txt
以下是httpd.conf的当前格式
NameVirtualHost *:80
WSGIPythonPath "Z:/projects/bin/tttb"
# site1
# =======================================
<VirtualHost *:80>
ServerName site1
WSGIScriptAlias "/djangosite1" "Z:/projects/site1/wsgi.py"
<Directory "Z:/projects/site1">
Order allow,deny
Allow from all
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
# site1
# =======================================
<VirtualHost *:80>
ServerName site2
WSGIScriptAlias "/djangosite2" "Z:/projects/site2/wsgi.py"
<Directory "Z:/projects/site2">
Order allow,deny
Allow from all
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
与StackOverflow上的类似问题相反,请参阅或我们在windows XAMMP上运行,因此不可能使用WSGIApplicationGroup或WSGIProcessGroup。然而,乍一看,这种设置是有效的。我们甚至测试了它是否有虚拟主机。在这两种情况下都可以
除了一个细节:当我们需要确定当前工作目录时,实例会混淆。如。
myfile=openos.path.join.,someresultfile.txt,r
最初,在Apache重启之后,workdir仍然正确确定,但在浏览了两个站点之后,workingdirectory似乎被锁定在两个路径之一。
可能还有其他类似的泄漏,我们不知道,但这是最明显的。我们也在不使用virtualhosts的情况下尝试了这一点,它给出了相同的结果
另一个奇怪的行为是,当如上所述使用virtualhosts时,通用主机名上的url仍然指向一个Django站点。但是,我希望它应该指向子目录htdocs/djangosite1并失败,因为该目录不存在
在此问题上的任何帮助都将不胜感激
import os,sys
bindir = os.path.join("Z:\\","projects","bin")
if bindir not in sys.path:
sys.path.append(bindir)
os.chdir(os.path.dirname(os.path.abspath(__file__)))
os.environ['DJANGO_SETTINGS_MODULE'] = 'tttb.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()