2013-07-20 73 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