Ответ 1
По-видимому, это проблема, связанная с Apache 2.4 и более старыми версиями. Вам нужно заменить конфигурацию apache:
Allow from all
с
Require all granted
в разделе <Files wsgi.py>
Я создал проект 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 строк в этот файл и не смог понять, что неправильно.
По-видимому, это проблема, связанная с Apache 2.4 и более старыми версиями. Вам нужно заменить конфигурацию apache:
Allow from all
с
Require all granted
в разделе <Files wsgi.py>
Вы можете использовать следующее:
<Directory /home/aettool/aet/apache>
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
Об этом сообщается в 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>
Есть еще один вопрос:
Проверьте файл httpd.conf для следующей конфигурации:
<IfModule mime_module>
AddHandler cgi-script .cgi .pl .py
</IfModule>
Это приведет к ошибке.
.py НЕ ДОЛЖЕН быть настроен как CGI script