我正在尝试运行配置在同一个VirtualHost
上的两个wsgi应用程序。其中一个应用程序myapp
是指定的标准hello world代码here。装载得很好。另一个应用程序,uiapp
是一个Django站点。它以ImportError
失败。在
我在wsgi docs中读到,python-path
的值被附加到sys.path
中,所以这就是我在WSGIDaemonProcess
中为uiapp
指定的。在
我不知道问题出在Python代码还是Apache配置上。在
这是我的虚拟主机配置:
[ . . . ]
# processGroups
WSGIProcessGroup uiapp
WSGIProcessGroup myapp
# configurations for django sites
WSGIScriptAlias /uiapp "/some/path/ui_dir/site_prod/wsgi.py"
WSGIScriptAlias /myapp "/some/other/path/myapp.wsgi"
# daemons
WSGIDaemonProcess uiapp processes=2 threads=25 display-name=site_prod_wsgi python-path=/some/path/ui_dir
WSGIDaemonProcess myapp processes=2 threads=25 display-name=helloworld_wsgi
# doc root for /uiapp
<Directory "/some/path/ui_dir/site_prod">
Order allow,deny
Allow from all
</Directory>
# doc root for /myapp
<Directory "/some/other/path">
Order allow,deny
Allow from all
</Directory>
[ . . . ]
我曾试图将uiapp
的python-path
改为/some/path/ui_dir/site_prod
,但即使这样也失败了,因为同样的错误。在
错误日志为:
^{pr2}$这是/some/path/ui_dir/site_prod/wsgi.py
的源代码
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site_prod.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)
请帮我弄清楚我做错了什么。在
…并确保已在中设置DJANGO_SETTINGS_模块wsgi.py在
如果您查看django docs的前一个版本1.3而不是1.4,那么How to use Django with Apache and mod_wsgi部分可以帮助您解决问题。当我配置虚拟主机时,我也面临着同样的问题。所以不要在虚拟主机配置中指定
python-path=/some/path/ui_dir
。您可以在/some/path/ui_dir/site_prod/wsgi.py
中添加下面的行到该文件中。在导入和运行django之前,将这些行放在文件顶部的行之前。在编码
在这样的行中不能有两个WSGIProcessGroup指令。只使用最后一个。因此,实际上是将两个应用程序发送到同一个守护进程组,而不是不同的守护进程组。完成此操作并将它们置于同一进程中,您将遇到中所述的setdefault()问题:
将WSGIProcessGroup指令移到与各自的WSGI脚本文件位置相关的目录块中。在
相关问题 更多 >
编程相关推荐