Подтвердить что ты не робот

403 Запрещенная ошибка с Django и mod_wsgi

Я создал проект Django в домашнем каталоге, поэтому он находится в домашнем каталоге.

Настройка

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

Содержание /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()

Контекст 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

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

Разрешения /home/aettool/aet : 775

Разрешения /home/aettool/aet/apache : 755

Разрешения django.wsgi file : 664

Я получаю ошибку в браузере 403 Forbidden You 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 строк в этот файл и не смог понять, что неправильно.

4b9b3361

Ответ 1

По-видимому, это проблема, связанная с Apache 2.4 и более старыми версиями. Вам нужно заменить конфигурацию apache:

Allow from all

с

Require all granted

в разделе <Files wsgi.py>

Ответ 2

Вы можете использовать следующее:

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

Ответ 3

Об этом сообщается в Django билет 19319:

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

Теперь для вашего файла wsgi.py для конфигурации вашего Apache требуется следующее:

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

Ответ 4

Есть еще один вопрос:

Проверьте файл httpd.conf для следующей конфигурации:

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

Это приведет к ошибке.

.py НЕ ДОЛЖЕН быть настроен как CGI script