Following are some notes I made during my last install of a Django based web application on an Apache web
server running on Windows.
This assumes a Django application is being installed on a computer with no prior Django installs. I also describe a particular example, but the same steps can be applied to many applications, just replace my application specifics with your application specifics.
This assumes a Django application is being installed on a computer with no prior Django installs. I also describe a particular example, but the same steps can be applied to many applications, just replace my application specifics with your application specifics.
- Install Python 2.6.
- Run the MSI installer and install in C:\Programs.
- Create the following environment variable: PYTHON_HOME=C:\Programs\Python26 (see System Properties/Advanced/Environment Variables).
- Append the newly created variable to your PATH variable. Also append %PYTHON_HOME%\Scripts and %PYTHON_HOME%\Lib
- Open a command line prompt, execute the command python. This should start the Python interactive interpreter.
- Install Django 1.1.
- Unpack the distribution (usually a tar.gz or .zip file) in some temporary directory. You might need to install (the free and excellent) 7-Zip for this.
- Open a command line prompt in the directory Django was unpacked in, most likely Django-1.1.
- Execute python setup.py install (or setup.py install).
- To check if the install went correctly, you should be able to import the Django module in Python.
Start Python from the command line, and execute:
import django django.VERSION
- Install Apache 2.2.
- Runs the Windows MSI installer provided from the Apache web site.
- From a web browser, enter the URL http://localhost. A valid web page hosted be Apache should be displayed.
- Install the modwsgi module.
- The module file will be named something like mod_wsgi-win32-ap22py26-2.6.so (http://code.google.com/p/modwsgi/downloads/list).
- Copy it to the modules directory of the Apache installation. E.g., C:/Program Files/Apache Software Foundation/Apache2.2/modules.
- Rename it to mod_wsgi.so.
- Open Apache's http.conf file.
- Add the line LoadModule wsgi_module modules/mod_wsgi.so before all the other LoadModule entries.
- Configure Apache for your Django project by adding the following to end of http.conf:
# Static content Alias /media/ C:/Programs/TestDjango/mysite/media/ <Directory C:/Programs/TestDjango/mysite/media/> Order deny,allow Allow from all </Directory> # Django dynamic content WSGIScriptAlias / C:/Programs/TestDjango/mysite/apache/django.wsgi <Directory C:/Programs/TestDjango/mysite/apache> Order deny,allow Allow from all </Directory>
Where TestDjango is the Django project root. The paths below TestDjango will be specific to your project. This configuration serves all static media via the URL space /media/ and all the rest via WSGI and Django.
- You may need to create the django.wsgi script if it's not already created. To do so, create a file
django.wsgi and add the following to it:
import os import sys sys.path.append('C:/Programs/TestDjango') os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Note that sys.path.append('C:/Programs/TestDjango') is only needed if your project (TestDjango) is not on Python's path, PYTHONPATH.
- Restart Apache. For this you can use the Apache Service Monitor from the taskbar tray.
- From a web browser, attempt to hit the Django application's web page, such as http://localhost/mysite.
References
- Install modwsgi:
- Configure Apache for modswgi:
- Install Django: