对于我的django应用程序(称为“iwidget”),我已创建(并使用a2ensite
安装)此虚拟主机配置文件(001-default
)
WSGIPythonHome /home/user/.virtualenvs/iwidget
<VirtualHost *:80>
ServerAdmin webmaster@localhost
WSGIDaemonProcess iwidget processes=4 threads=10 display-name=%{GROUP} python-path=/home/user/.virtualenvs/iwidget/lib/python2.7
WSGIProcessGroup iwidget
WSGIScriptAlias /iwidget /home/user/iwidget/iwidget/wsgi.py
Alias /iwidget/static/ /home/user/iwidget/iwidget/staticfiles/
<VirtualHost>
这是我的wsgi.py
(在/home/user/iwidget/iwidget/
目录中。)
import os, sys, site
site.addsitedir('/home/user/.virtualenvs/iwidget/lib/python2.7/site-packages')
activate_this = os.path.expanduser("/home/user/.virtualenvs/iwidget/bin/activate_this.py")
execfile(activate_this, dict(__file__=activate_this))
sys.path.append('/home/user/iwidget')
sys.path.append('/home/user/iwidget/iwidget')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "iwidget.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
但是,我收到此错误
[warn] mod_wsgi: Compiled for Python/2.7.2+.
[warn] mod_wsgi: Runtime using Python/2.7.3.
[notice] Apache/2.2.22 (Debian) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[error] File does not exist: /var/www/iwidget
/var/www/iwidget
? Apache为什么要查看此目录?我做错了什么?
请注意。已经有一个default
vhost配置指向工作正常。这是我的第二个(这就是我称之为001-default
)的原因。
答案 0 :(得分:2)
您有两个配置文件,但无法区分它们。 Apache会简单地将所有内容与原始内容进行匹配,因为它首先按字母顺序排列,并且永远不会出现在新内容中 - 因此它会查找/ var / www,因为显然DocumentRoot设置为001-default。
你真的需要将它放在一个单独的文件中吗?没有理由你不能在001-default中添加这个配置。否则,您需要将它们放在不同的端口上,或使用ServerName指令来区分它们。