403 Forbidden error with Django and mod_wsgi
Solution 1
Apparently this is an issue that is related to Apache 2.4 and older versions. You need to replace in your apache configuration:
Allow from all
with
Require all granted
in the <Files wsgi.py>
section
Solution 2
You can use the following:
<Directory /home/aettool/aet/apache>
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
Solution 3
This has been reported in Django ticket 19319:
https://code.djangoproject.com/ticket/19319
Your Apache config now needs the following for your file wsgi.py
.
<Directory /path/to/your/wsgi-script>
<Files wsgi.py>
Order deny,allow
Allow from all
Require all granted
</Files>
</Directory>
Solution 4
There is one other gotcha:
Check your httpd.conf file for the following configuration:
<IfModule mime_module>
AddHandler cgi-script .cgi .pl .py
</IfModule>
This will cause the error.
.py MUST NOT be configured as a CGI script
Comments
-
g4ur4v about 4 years
I created Django project in home directory so it is in home directory.
Setup
Django Verison : 1.5.1 Python Version : 2.7.5 mod_wsgi Version: 3.4 Home Directory : /home/aettool
Contents of
/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 of
httpd.conf
WSGIScriptAlias / /home/aettool/aet/apache/django.wsgi <Directory /home/aettool/aet/apache> Order deny,allow Allow from all </Directory>
Error 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
Contents of
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)), )
Permissions of
/home/aettool/aet : 775
Permissions of
/home/aettool/aet/apache : 755
Permissions of
django.wsgi file : 664
I am getting error on browser
403 Forbidden
You don't have permission to access / on this server.
Please help me out with the configuration .
EDIT
For now I am moving forward by changing
<Directory /> AllowOverride none Require all denied </Directory>
to
<Directory /> Order deny,allow Allow from all </Directory>
So,this has definitely something to do with
httpd.conf
file configuration,but my worry is that I only added 5 lines in that file and not able to figure out what's wrong .