Deployment¶
Apache¶
Most people use apache and mod_wsgi for deploying Django apps.
If you're deploying obdemo, there's a suitable wsgi script at
obdemo/wsgi/obdemo.wsgi
; if you generated a custom app, there's a wsgi script at
src/<projectname>/<projectname>/wsgi/<projectname>.wsgi
.
For more info, see http://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/
Threading¶
Be warned that GeoDjango in general - and thus OpenBlock -
is not safe to deploy multi-threaded. With mod_wsgi, this typically
means setting the threads=1
option in the WSGIDaemonProcess
directive.
See http://docs.djangoproject.com/en/1.3/ref/contrib/gis/deployment/
for more info.
Note on Virtual Hosting and Paths¶
Currently (2011/04/20), OpenBlock's views and templates (in the ebpub package) contain a lot of hard-coded URLs that only work if the site is deployed at the root of your domain.
In other words, you can deploy OpenBlock at http://example.com/ or http://openblock.example.com/ but you can't successfully deploy it at http://openexample.com/openblock.
Example Apache Config¶
Adjust the paths according to your installation.
<VirtualHost *:80>
ServerName ....compute-1.amazonaws.com
# Static media handling.
# You'll want the "expires" module enabled.
Alias /media/ /home/openblock/openblock/src/django/django/contrib/admin/media/
Alias /styles/ /home/openblock/openblock/src/openblock/ebpub/ebpub/media/styles/
Alias /scripts/ /home/openblock/openblock/src/openblock/ebpub/ebpub/media/scripts/
Alias /images/ /home/openblock/openblock/src/openblock/ebpub/ebpub/media/images/
Alias /cache-forever/ /home/openblock/openblock/src/openblock/ebpub/ebpub/media/cache-forever/
Alias /olwidget/ /home/openblock/openblock/src/django-olwidget/
# Only needed if you're running obdemo.
Alias /map_icons/ /home/openblock/openblock/src/openblock/obdemo/obdemo/media/map_icons/
<Directory /home/openblock/openblock/src/openblock/ebpub/ebpub/media/ >
# I'm assuming everything here safely has a version-specific URL
# whether via django-static or eg. the OpenLayers directory.
ExpiresActive on
ExpiresDefault "now plus 10 years"
</Directory>
WSGIScriptAlias / /home/openblock/openblock/src/openblock/obdemo/obdemo/wsgi/obdemo.wsgi
WSGIDaemonProcess obdemo_org user=openblock group=www-data processes=10 threads=1
WSGIProcessGroup obdemo_org
CustomLog /var/log/apache2/openblock-access.log combined
ErrorLog /var/log/apache2/openblock-error.log
</VirtualHost>