我正在使用Windows XP,想知道如何通过虚拟主机(当然)在单个apache服务上创建多个django版本。
我也试图用python的一个实例做到这一点。我应该为每个django版本创建1个python实例,或者django只需要它的蛋可以工作,所以我只能在一个python版本中有几个蛋?
答案 0 :(得分:2)
您可以在httpd.conf中执行类似的操作
NameVirtualHost 0.0.0.0:80
<VirtualHost 0.0.0.0:80>
ServerName myserver.com
ServerAdmin myemail@gmail.com
DocumentRoot "/path/to/html/root"
ErrorLog "/path/to/apache-error.log"
CustomLog "/path/to/apache-access.log" common
Options ExecCGI FollowSymLinks MultiViews
AddHandler wsgi-script .wsgi
WSGIDaemonProcess djangoapp1
WSGIProcessGroup djangoapp1
WSGIScriptAlias / /path/to/djangoapp1.wsgi
Alias /static /path/to/static/files
DirectoryIndex index.html index.cgi
AddHandler cgi-script .cgi .pl
</VirtualHost>
NameVirtualHost 0.0.0.0:81
<VirtualHost 0.0.0.0:81>
ServerName myserver.com
ServerAdmin myemail@gmail.com
DocumentRoot "/path/to/html/root"
ErrorLog "/path/to/apache-error.log"
CustomLog "/path/to/apache-access.log" common
Options ExecCGI FollowSymLinks MultiViews
AddHandler wsgi-script .wsgi
WSGIDaemonProcess djangoapp2
WSGIProcessGroup djangoapp2
WSGIScriptAlias / /path/to/djangoapp2.wsgi
Alias /static /path/to/static/files
DirectoryIndex index.html index.cgi
AddHandler cgi-script .cgi .pl
</VirtualHost>
然后,在您的djangoapp1.wsgi / djangoapp2.wsgi脚本中,您可以定义不同的django版本和应用程序:
#!/usr/bin/python
import os
import sys
sys.path.append('')
sys.path.append('/path/to/python2.7/site-packages')
sys.path.append('/path/to/python2.7/dist-packages/Django-1.3-py2.7.egg ')
... etc ...
sys.path.append('/path/to/djangoapp1/src')
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangoapp1.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
答案 1 :(得分:1)
将django源放在您想要的任意位置,并在manage.py
和wsgi.py
中手动指定django源的路径:
import os
os.path.insert(0, 'path-to-django-source');
您也可以使用virtualenv。 Virtualenv会自动修复控制台应用程序的路径,但对于wsgi.py
,您仍需要手动记录路径。
使用zc.buildout和djangorecipe,它会为您完成所有工作,包括:
project-dir\bin\wsgi
project-dir\bin\django.exe
所有这些都是通过一个配置文件buildout.cfg
完成的 - 在这里列出您的模块和其他设置,然后运行命令:buildout -N
。
然而,如果你有紧迫的截止日期,那么扩建可能不是一个好的解决方案,因为有些事情你需要了解它,但如果你打算做更多的python应用程序,我绝对建议尝试。
以下是django + buildout设置的一些示例:
http://www.google.lt/search?q=django+buildout+template+OR+skeleton
您无法在系统范围内安装两个django版本。
你可以做的是:
不要安装django,只需将django-base/django
文件夹放入项目路径即可。您必须手动编译国际化文件(如果您使用i18n):
cd django\conf
python ..\..\manage.py compilemessages
或者,使用python setup.py install
安装django,但使用额外的参数来更改安装目标。 Python文档covers few different methods。