Django Development with IIS
Overview[edit]
Information about setting up Django projects on IIS.
Prerequisites[edit]
BitNami Django Stack[edit]
The BitNami Django Stack is a bundle of installers for the whole environment necessary to run Django on a Windows server. It includes Python, MySQL, PostgreSQL, an Apache server, and Django.
The installation prompts for a port number to use for the Apache server. 8080 is commonly used.
The Apache server can then be reached with `http://localhost:8080. Or, after opening the port in Windows Firewall, the server can be reached on the LAN with http://[MACHINE_NAME]:8080 or http://[LOCAL_IP]:8080`.
Changing the Apache server port number[edit]
To change the port number of the Apache server after installation:
- Edit the
Listenvalue in the[DJANGO_INSTALL_ROOT]/apache2/conf/httpd.conffile. - Restart the server.
- (Windows Start Menu > BitNami DjangoStack > Manager Tool > Apache Web Server > Restart)
Accessing projects[edit]
Goals[edit]
- Local development: Access the project using `http://localmachine:8080:/MyDjangoProject/
Public access: Access the project usinghttp://staging.devdomain.com:8080:/MyDjangoProject/`- N.B. The Apache server needs to be restarted for any changes to the code to take effect.
- N.B. It's very insecure to allow public access.
Workflow[edit]
For each Django Project:
- Create a WSGI application script file named
projectName.wsgiin[DJANGO_INSTALL_DIR]/appls/django/conf.
import os, sys
sys.path.append('/path/to/your/project/folder')
os.environ['DJANGO_SETTINGS_MODULE'] = 'projectName.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
- After saving the WSGI file, create an Apache configuration file named
projectName.confininstalldir/apps/django/confto load it.
Alias /static "installdir/apps/django/lib/python-version/site-packages/django/contrib/admin/static"
<Directory 'installdir/apps/django/lib/python-version/site-packages/django/contrib/'>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias /URL_mount_point "installdir/apps/django/scripts/projectName.wsgi"
<Directory 'installdir/apps/django/scripts'>
Order allow,deny
Allow from all
</Directory>
- Edit the file 'httpd.conf' and add the following line:
Include "installdir/apps/django/conf/projectName.conf"
- Restart the Apache server.
N.B. Paths on Windows should use Unix-style forward slashes: c:/path/to/dir/
Source: BitNami Django Stack Wiki: How to Start a Django Project?
Making requests to the project[edit]
Local network[edit]
Access the project with either the local IP or network name of the server: `http://machinename:8080/DjangoProjectName`
Public access[edit]
- Open port
8080(or whatever port the Apache server is using) on the router. - Access the project using the default URL within IIS: `http://www.devdomain.com:8080/DjangoProjectName`
- N.B. the Windows versions of all the necessary software are not secure. Public access to the Django project running on IIS should only be allowed on a temporary basis and only if there is a compelling reason.