web-dev-qa-db-fra.com

403 Erreur interdite avec Django et mod_wsgi

J'ai créé le projet Django dans le répertoire personnel donc il est dans le répertoire personnel.

Configuration

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

Contenu de /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()

Contexte de httpd.conf

WSGIScriptAlias / /home/aettool/aet/Apache/Django.wsgi

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

Erreur dans 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

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

Autorisations de /home/aettool/aet : 775

Autorisations de /home/aettool/aet/Apache : 755

Autorisations de Django.wsgi file : 664

Je reçois une erreur sur le navigateur 403 ForbiddenYou don't have permission to access / on this server.

Veuillez m'aider avec la configuration.

MODIFIER

Pour l'instant je vais de l'avant en changeant

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

à

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

Donc, cela a certainement quelque chose à voir avec httpd.conf configuration du fichier, mais mon inquiétude est que je n'ai ajouté que 5 lignes dans ce fichier et que je n'arrive pas à comprendre ce qui ne va pas.

31
g4ur4v

Apparemment, c'est un problème lié à Apache 2.4 et aux versions antérieures. Vous devez remplacer dans votre configuration Apache:

Allow from all

avec

Require all granted

dans le <Files wsgi.py> section

39
Sdra

Vous pouvez utiliser les éléments suivants:

<Directory /home/aettool/aet/Apache>
  <IfVersion < 2.3 >
   Order allow,deny
   Allow from all
  </IfVersion>
  <IfVersion >= 2.3>
   Require all granted
  </IfVersion>
</Directory>
16
dnozay

Cela a été signalé dans Django ticket 19319:

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

Votre configuration Apache a maintenant besoin des éléments suivants pour votre fichier wsgi.py.

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

Il y a un autre gotcha:

Vérifiez votre fichier httpd.conf pour la configuration suivante:

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

Cela provoquera l'erreur.

.py NE DOIT PAS être configuré en tant que script CGI

2
jknappen