首页 > 解决方案 > 使用两个不同的python版本(Django App)的apache2中的WSGI错误

问题描述

我正在尝试使用不同的 python 版本(2.7 和 3.5)在 ubuntu 的 Apache2 服务器上设置两个 Django 应用程序。

阿帕奇配置:

WSGIDaemonProcess site1  display-name=%{GROUP} 
WSGIScriptAlias /site1 /var/www/bigb/site1/site1/wsgi.py
    <Location /site1>
        WSGIProcessGroup site1
        WSGIApplicationGroup %{GLOBAL}
    </Location>
WSGIDaemonProcess vdms display-name=%{GROUP}
WSGIScriptAlias /vdms /var/www/bigb/vdms/vdms/wsgi.py 
    <Location /vdms>
        WSGIProcessGroup vdms
        WSGIApplicationGroup %{GLOBAL}
    </Location>
    <Location /site1>
        WSGIProcessGroup site1
        WSGIApplicationGroup %{GLOBAL}
    </Location>
   <Directory /var/www/bigb/vdms/vdms>
    <Files wsgi.py>
        Require all granted
    </Files>
  </Directory>
  <Directory /var/www/bigb/site1/site1>
    <Files wsgi.py>
        Require all granted
    </Files>
  </Directory>

站点 1 的 Wsgi.py 文件:

from django.core.wsgi import get_wsgi_application
sys.path.append('/var/www/bigb/site1')
sys.path.append('/var/www/bigb/site1/venv/lib/python3.5/site-packages')
os.environ["DJANGO_SETTINGS_MODULE"]= "site1.settings"
application = get_wsgi_application()

用于 vdms 的 Wsgi.py 文件:

from django.core.wsgi import get_wsgi_application
sys.path.append('/var/www/bigb/vdms')
sys.path.append('/var/www/bigb/vdms/venv/lib/python2.7/site-packages')
os.environ["DJANGO_SETTINGS_MODULE"]= "vdms.settings"
application = get_wsgi_application()

当我尝试运行 apache 服务器时,我可以访问 site1,但是当我尝试加载 vdms 时,出现内部服务器错误

 raise RuntimeError("populate() isn't reentrant")
[Tue Aug 07 11:25:03.426115 2018] [wsgi:error] [pid 12920] [remote 192.168.1.14:57874] RuntimeError: populate() isn't reentrant
[Tue Aug 07 11:25:03.426095 2018] [wsgi:error] [pid 12920] [remote 192.168.1.14:57874]     apps.populate(settings.INSTALLED_APPS)
[Tue Aug 07 11:25:03.426100 2018] [wsgi:error] [pid 12920] [remote 192.168.1.14:57874]   File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 81, in populate

我已经在我的系统上安装了 libapache2-mod-wsgi-py3 和 libapache2-mod-wsgi,并且我还在 venv 中安装了 mod_wsgi。我可以在配置中添加两个 LoadModule 还是有任何配置错误,所以我做了。请教我解决这个问题

标签: pythondjangoapachemod-wsgi

解决方案


推荐阅读