2013-07-20 52 views
29

我在主目录中创建了Django项目,所以它在主目录中。 /home/aettool/aet/apache/django.wsgi403 Django和mod_wsgi的禁止错误

import os 
import sys 
os.environ['DJANGO_SETTINGS_MODULE'] = 'aet.settings' 

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

Contect的

设置

Django Verison : 1.5.1 
Python Version : 2.7.5 
mod_wsgi Version: 3.4 
Home Directory : /home/aettool 

内容的httpd.conf

WSGIScriptAlias//home/aettool/aet/apache/django.wsgi 

<Directory /home/aettool/aet/apache> 
Order deny,allow 
Allow from all 
</Directory> 

错误error_log

[Sun Jul 21 02:01:30.923364 2013] [authz_core:error] [pid 21540:tid 1193011520] [client 10.20.17.184:51340] AH01630: client denied by server configuration: /home/aettool/aet/apache/django.wsgi 

urls.py/home/aettool/aet : 775/home/aettool/aet/apache : 755

权限

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

权限的内容级权限的django.wsgi file : 664

我在浏览器403 ForbiddenYou don't have permission to access/on this server.

收到错误,请帮我出的配置。

编辑

现在我改变

<Directory /> 
    AllowOverride none 
    Require all denied 
</Directory> 

前进到

<Directory /> 
    Order deny,allow 
    Allow from all 
</Directory> 

所以,这无疑是与httpd.conf文件的配置,但我的担心是我只在该文件中添加了5行,无法找出错误。

+0

请告诉我们你的'urls.py' –

+0

的问题 – g4ur4v

+1

杜佩说:http://stackoverflow.com/questions/4807176/apache-mod-wsgi-error-forbidden-you-dont-have -per-s-access-on-this-s?rq = 1 –

回答

39

显然这是一个与Apache 2.4和旧版本有关的问题。 你需要在你的Apache配置来代替:

Allow from all 

Require all granted 

<Files wsgi.py>部分

+2

这让我抓狂 –

16

您可以使用以下方法:

<Directory /home/aettool/aet/apache> 
    <IfVersion <2.3> 
    Order allow,deny 
    Allow from all 
    </IfVersion> 
    <IfVersion >= 2.3> 
    Require all granted 
    </IfVersion> 
</Directory> 
+2

在旧版本的Apache这将是需要使用'''sudo a2enmod version'''启用“版本”mod – azmeuk

2

还有另外一个错误:

检查你的httpd。conf文件进行以下配置:

<IfModule mime_module> 
     AddHandler cgi-script .cgi .pl .py 
</IfModule> 

这将导致错误。

的.py不能配置为CGI脚本

+0

这就是为了我。谢谢。 –

4

这已被报道在Django票19319:

https://code.djangoproject.com/ticket/19319

你的Apache配置现在需要为您的文件wsgi.py以下。

<Directory /path/to/your/wsgi-script> 
<Files wsgi.py> 
    Order deny,allow 
    Allow from all 
    Require all granted 
</Files> 
</Directory> 
+1

这工作,但与<目录/路径/到/父/目录>而不是wsgi脚本 – eli