您好,我今天不得不重新安装 mod_wsgi(因为我们的 Red Hat 服务器又崩溃了)。使用 Django 部署时发生了一些奇怪的事情。我一直收到 403 页错误You do not have permission to access /mmc on this server
。
我的项目文件夹存放在/usr/local/src/djcode/c2duo_mms' The permission of my project folder and all of its contents are set to
chmod 755`中。应用程序名称叫做mmc。
django.wsgi file
import os
import sys
sys.path.append('/usr/local/src/djcode/')
sys.path.append('/usr/local/src/djcode/c2duo_mms')
os.environ['DJANGO_SETTINGS_MODULE'] = 'c2duo_mms.settings'
import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandle()
httpd.conf file
WSGIScriptAlias /mmc /usr/local/src/djcode/c2duo_mms/apache/django.wsgi
WSGIPythonEggs /tmp
<Directory /var/www/html/c2duo_crm/apache>
Order allow,deny
Allow from all
我看不出这里有什么问题。我上次将项目文件夹存储在同一个位置,但这次它不起作用。
答案1
Apache 用户不仅需要可以访问 WSGI 脚本文件所在的特定文件夹。所有备份到文件系统根目录的目录也需要可供 Apache 用户搜索。如果父目录具有限制性权限,您将收到该错误。有关更多详细信息,请查看:
http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations
其中包括权限的详细信息。
更新 1
我忽略了您的配置中的一个明显错误,那就是您应该使用:
<Directory /usr/local/src/djcode/c2duo_mms/apache>
并不是:
<Directory /var/www/html/c2duo_crm/apache>
您谈论权限的问题分散了我的注意力,我只是纠正了您所说的实际上不相关的内容。
再次查看 mod_wsgi 中的示例,其中展示了 WSGIScriptAlias 和 Directory 指令如何关联。
答案2
确保您的 WSGI 套接字上的权限使您的有效用户具有读/写访问权限?
相关文件:http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGISocketPrefix
如果这没有帮助,您的配置是从备份中恢复的吗,还是它们被完全重写了?您能提供更多配置吗?