[Django]-403 Forbidden error with Django and mod_wsgi

39👍

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

👤Sdra

16👍

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>
👤dnozay

4👍

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>

3👍

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

-1👍

Linux systems usually don’t allow other users to read inside the home directory, and as Apache runs as root, mod_wsgi will not be able to access the inside of the home directory.
Try:

sudo chmod 755 /home/<username>

Leave a comment