python - 使用两个不同的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 还是有任何配置错误,所以我做了。请教我解决这个问题
解决方案
推荐阅读
- recursion - 这个递归代码的运行时间是多少?
- php - 使用 php 群发邮件
- wordpress - Wordpress 上传:文件大小必须至少为 512 KB?
- javascript - 类似 Python 的 JavaScript 中的函数模拟
- arrays - 在数组中查找峰值元素的最佳算法
- python - 如何在 Windows Server 2008 R2 上使用 WMI 获取集群 ID?
- google-apps-script - 重复工作表但与仅编辑器完全相同的用户保持受保护范围?
- php - php当前时间大于时间戳给出错误结果
- regex - 正则表达式匹配带有缩写的句子
- python - 如何使用 python 列出 Kafka 消费者组