=================== Deploying GeoDjango =================== .. warning:: GeoDjango uses the GDAL geospatial library which is not thread safe at this time. Thus, it is *highly* recommended to not use threading when deploying -- in other words, use an appropriate configuration of Apache or the prefork method when using FastCGI through another Web server. Apache ====== In this section there are some example ``VirtualHost`` directives for when deploying using either ``mod_python`` or ``mod_wsgi``. At this time, we recommend ``mod_wsgi``, as it is now officially recommended way to deploy Django applications with Apache. Moreover, if ``mod_python`` is used, then a prefork version of Apache must also be used. As long as ``mod_wsgi`` is configured correctly, it does not matter whether the version of Apache is prefork or worker. .. note:: The ``Alias`` and ``Directory`` configurations in the examples below use an example path to a system-wide installation folder of Django. Substitute in an appropriate location, if necessary, as it may be different than the path on your system. ``mod_wsgi`` ------------ Example:: WSGIDaemonProcess geodjango user=geo group=geo processes=5 threads=1 WSGIProcessGroup geodjango WSGIScriptAlias / /home/geo/geodjango/world.wsgi Alias /media/ "/usr/lib/python2.6/site-packages/django/contrib/admin/media/" Order allow,deny Options Indexes Allow from all IndexOptions FancyIndexing .. warning:: If the ``WSGIDaemonProcess`` attribute ``threads`` is not set to ``1``, then Apache may crash when running your GeoDjango application. Increase the number of ``processes`` instead. For more information, please consult Django's :doc:`mod_wsgi documentation `. ``mod_python`` -------------- .. warning:: Support for mod_python will be deprecated in a future release of Django. If you are configuring a new deployment, you are strongly encouraged to consider using :doc:`mod_wsgi ` or any of the other :doc:`supported servers `. Example:: SetHandler mod_python PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE world.settings PythonDebug On PythonPath "['/var/www/apps'] + sys.path" Alias /media/ "/usr/lib/python2.6/site-packages/django/contrib/admin/media/" SetHandler None .. warning:: When using ``mod_python`` you *must* be using a prefork version of Apache, or else your GeoDjango application may crash Apache. For more information, please consult Django's :doc:`mod_python documentation `. Lighttpd ======== FastCGI ------- Nginx ===== FastCGI -------