Django/Apache
From Jon's Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Setting up Django on Apache 2 is relatively straightforward, but with a few kinks noted herewith.
Django Requirements
- Python >= 2.4
- Apache 2
- mod_wsgi - Apache module for Python apps
- PostgreSQL >= 8.0
- python-psycopg2 - PostgreSQL client library for Python
- python-imaging - Python Imaging library
- memcached and python-memcache (optional but recommended)
Preparation
Django can be installed from the Debian packaged version, and mod_wsgi and psycopg2 can be simply installed using apt-get:
apt-get install python-django libapache2-mod-wsgi python-psycopg2
Check the mod_python Apache module is enabled:
a2enmod wsgi
Example Apache VHost configuration
<VirtualHost *:80> ServerName www.clientsite.co.nz # static content (for now, but separate domain best) AliasMatch /([^/]*\.(gif|png|jpg)) /path/to/myproject'/static/$1 <Directory /path/to/myproject/static> Require all granted </Directory> WSGIScriptAlias / /path/to/myproject/django.wsgi </VirtualHost>
Example WSGI file
This would go in the /path/to/myproject/django.wsgi file, as specified in the Apache WSGIScriptAlias directive.
import os import sys # You may also need to add the Django path path = "/path/to/myproject" if path not in sys.path: sys.path.append(path) os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings" import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()