我正试图将mod_wsgi与apache一起部署以运行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数据用户启动deamon,但这并没有解决问题。
编辑:
我解决了这个问题,将虚拟主机文件复制到默认文件中,然后用一个异议禁用旧文件。我不知道如何“正确”地设置它,以便apache进入我想要的虚拟主机。
对我来说,问题是WSGI脚本不可执行。
或者只是
只要你有正确的主人
日志中的此错误消息也有类似问题:
解决方案是从
/etc/httpd/conf.d/wsgi.conf
中删除不正确的WSGIPythonHome指令(指向应用程序目录)我在RedHat上用的是CentOS仓库。
建议遵循Graham Dumpleton的安装/配置说明。对helloworld应用程序测试配置时,我发现
mod_wsgi
正在工作,配置有问题。然而,错误消息并没有给出什么错误的线索。
对我来说,问题是wsgi python版本不匹配。我用的是python 3,所以:
在复制/粘贴这些命令之前,@alxs发出警告:
如果服务器上运行了使用wsgi和apache的python 2项目,那么上述命令将有效地关闭它们。
相关问题 更多 >
编程相关推荐