无法将目标WSGI脚本加载为Python模块

我正在尝试用apache部署mod_wsgi来运行django应用程序,但出现了错误500内部服务器错误apache日志显示:

[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] mod_wsgi (pid=16142): Exception occurred processing WSGI script '/home/user/bms/apache/django.wsgi'.

[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] Traceback (most recent call last):

[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] File "/home/user/bms/apache/django.wsgi", line 13, in <module>

[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] import django.core.handlers.wsgi

[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] ImportError: No module named django.core.handlers.wsgi

我的apache虚拟主机如下:

<VirtualHost *:80>

DocumentRoot /home/user/bms

<Directory /home/user/bms>

Order allow,deny

Allow from all

</Directory>

WSGIDaemonProcess bms user=user group=user processes=2 threads=25 python-path=/usr/local/lib/python2.7/site-packages

WSGIProcessGroup bms

WSGIScriptAlias / /home/user/bms/apache/django.wsgi

</VirtualHost>

并在我的应用程序目录中具有0777权限的引用的wsgi文件:

import os

import sys

path = '/home/user/bms'

if path not in sys.path:

sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'bms.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

我听说这可能是因为apache用户没有正确的权限。但是我不知道如何解决此问题。我还尝试了与www-data用户一起启动守护进程,但这并不能解决问题。

编辑:

通过将虚拟主机文件复制到默认文件中,然后使用a2dissite禁用旧文件,我解决了这一问题。我不知道该如何“正确”地进行设置并将apache设置为我想要的虚拟主机。

回答:

对我来说,问题是wsgi python版本不匹配。我使用的是python 3,因此:

$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi

$ sudo apt-get install libapache2-mod-wsgi-py3

在复制/粘贴以下命令之前,@ alxs会发出警告:

如果在服务器上运行的使用wsgi和apache的python 2项目,上述命令将有效地将其关闭。

以上是 无法将目标WSGI脚本加载为Python模块 的全部内容, 来源链接: utcz.com/qa/406771.html

回到顶部