2013-07-20 20 views
29

Ho creato il progetto Django nella directory home in modo che sia nella home directory.403 Errore proibito con Django e mod_wsgi

Setup

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

Contenuto del /home/aettool/aet/apache/django.wsgi

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

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

Contect di httpd.conf

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

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

errore in 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 

Contenuto del urls.py

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)), 
) 

Permesso del /home/aettool/aet : 775

Permesso del /home/aettool/aet/apache : 755

Autorizzazioni della django.wsgi file : 664

sto errore ottenendo il navigatore 403 ForbiddenYou don't have permission to access/on this server.

Si prega di aiutarmi con la configurazione.

EDIT

Per ora mi sto muovendo in avanti modificando

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

a

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

Quindi, questo ha sicuramente qualcosa a che fare con file di configurazione httpd.conf, ma la mia preoccupazione è che ho aggiunto solo 5 righe in quel file e non sono in grado di capire cosa c'è che non va.

+0

Si prega di farci vedere il tuo 'urls.py' –

+0

aggiunto nella domanda – g4ur4v

+1

Dupe: http://stackoverflow.com/questions/4807176/apache-mod-wsgi-error-forbidden-you-dont-have -permission-to-access-on-this-s? rq = 1 –

risposta

39

Apparentemente si tratta di un problema relativo a Apache 2.4 e versioni precedenti. È necessario sostituire nella configurazione di Apache:

Allow from all 

con

Require all granted 

nella sezione <Files wsgi.py>

+2

Questo mi ha fatto impazzire –

16

È possibile utilizzare il seguente:

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

Su vecchie versioni di apache sarà necessario per abilitare il mod "version" con '' 'sudo a2enmod version''' – azmeuk

2

C'è un altro gotcha:

Controlla il tuo httpd.file conf per la seguente configurazione:

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

Ciò causerà l'errore.

.py NON DEVE essere configurato come uno script CGI

+0

Questo era per me. Grazie. –

4

Questo è stato riportato in Django 19319 biglietto:

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

tua configurazione di Apache ora ha bisogno il seguente per il file wsgi.py.

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

Questo ha funzionato, ma con non su wsgi-script – eli

Problemi correlati