我想在同一台主机上安装两个不同的django应用程序。这是我的default
虚拟主机配置文件(可行)。
WSGIPythonHome /home/user/.virtualenvs/project1
<VirtualHost *:80>
ServerAdmin webmaster@localhost
WSGIDaemonProcess project1 processes=4 threads=10 display-name=%{GROUP}
WSGIProcessGroup project1
WSGIScriptAlias /project1 /home/user/project1/project1/wsgi.py
Alias /project1/static/ /home/user/project1/project1/staticfiles/
</VirtualHost>
问题是WSGIPythonHome
指令,不能在VirtualHost
标记内。所以,我不能在同一个default
配置文件中有不同的项目。它必须在其他地方。
我尝试在WSGIPythonHome
中禁用home=/home/user/.virtualenves/project1
并使用WSGIDaemonProcess
参数,而不是如文档中所述,但我的应用程序无效(尝试时出现导入错误)加载wsgi.py文件。奇怪的是,如果我只使用WSGIPythonHome
),我的项目工作正常。
我想要的是拥有我的另一个django项目:
WSGIPythonHome /home/user/.virtualenvs/project2
<VirtualHost *:80>
ServerAdmin webmaster@localhost
WSGIDaemonProcess project2 processes=4 threads=10 display-name=%{GROUP}
WSGIProcessGroup project2
WSGIScriptAlias /project2 /home/user/project2/project2/wsgi.py
Alias /project2/static/ /home/user/project2/project2/staticfiles/
</VirtualHost>
但是我不能把它放在同一个default
文件中(在/ etc / apaches2 / sites-available中)。我尝试在那里添加一个default-001
文件并重新启动Apache,但它没有用。
那么,我应该在哪里放置我的第二个django项目配置?
更新。这是我的wsgi.py文件
import os, sys, site
site.addsitedir('/home/user/.virtualenvs/project1/lib/python2.7/site-packages')
activate_this = os.path.expanduser("/home/user/.virtualenvs/project1/bin/activate_this.py")
execfile(activate_this, dict(__file__=activate_this))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project1.settings")
project = '/home/user/project1/'
workspace = os.path.dirname(project)
sys.path.append(workspace)
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
答案 0 :(得分:1)
您可以在Apache中创建多个虚拟主机配置。在文件夹sites-available
中创建新的配置文件。通过运行a2ensite
启用该站点,然后重新启动Apache。