diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-06-24 21:30:14 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-06-24 21:30:14 -0400 |
commit | e4dc9a9229205b9bbdc58a62b0411685fecf0f82 (patch) | |
tree | 25fd8582a73e33471fe0b34fa0c2170788bfc90e /askbot/doc/source/deployment.rst | |
parent | 59421b46dd8b021064461e279f442fe193941b5b (diff) | |
download | askbot-e4dc9a9229205b9bbdc58a62b0411685fecf0f82.tar.gz askbot-e4dc9a9229205b9bbdc58a62b0411685fecf0f82.tar.bz2 askbot-e4dc9a9229205b9bbdc58a62b0411685fecf0f82.zip |
some progress on documentation
Diffstat (limited to 'askbot/doc/source/deployment.rst')
-rw-r--r-- | askbot/doc/source/deployment.rst | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/askbot/doc/source/deployment.rst b/askbot/doc/source/deployment.rst new file mode 100644 index 00000000..12eb00fe --- /dev/null +++ b/askbot/doc/source/deployment.rst @@ -0,0 +1,118 @@ +.. _deployment: + +================ +Deploying Askbot +================ + +Deploying askbot (assuming that it is already installed) entails: + +* setting correct file access permissions +* configuring the webserver to work with your application + +This document currently explains the configuration under Apache and mod_wsgi_. + +Setting up file access permissions +---------------------------------- + +Webserver process must be able to write to the following locations within your project:: + + log/ + askbot/upfiles + +If you know user name or the group name under which the webserver runs, +you can make those directories writable by setting the permissons +accordingly: + +For example, if you are using Linux installation of apache webserver running under +group name 'apache' you could do the following:: + + cd /path/to/django-project + cd .. #go one level up + chown -R yourlogin:apache django-project + chmod -R g+w django-project/askbot/upfiles + chmod -R g+w django-project/log + +If your account somehow limits you from running such commands - please consult your +system administrator. + +Installation under Apache/mod\_wsgi +------------------------------------ + +Apache/mod\_wsgi combination is the only type of deployment described in this +document at the moment. mod_wsgi_ is currently the most resource efficient +apache handler for the Python web applications. + +The main wsgi script is in the file django.wsgi_ +it does not need to be modified + +Configure webserver +~~~~~~~~~~~~~~~~~~~~ + +Settings below are not perfect but may be a good starting point:: + + #NOTE: the directory paths used here may be adjusted + + #the following two directories must be both readable and writable by apache + WSGISocketPrefix /path/to/socket/sock + WSGIPythonEggs /var/python/eggs + + #the following directory must be readable by apache + WSGIPythonHome /usr/local + + #NOTE: all urs below will need to be adjusted if + #settings.FORUM_SCRIPT_ALIAS is anything other than empty string (e.g. = 'forum/') + #this allows "rooting" forum at http://example.com/forum, if you like + + #replace with 127.0.0.1 with real IP address + <VirtualHost 127.0.0.1:80> + ServerAdmin you@example.com + DocumentRoot /path/to/django-project + ServerName example.come + + #aliases to serve static media directly + #will probably need adjustment + Alias /m/ /usr/local/lib/python2.6/site-packages/askbot/skins/default/media/ + Alias /upfiles/ /path/to/django-project/askbot/upfiles/ + Alias /admin/media/ /usr/local/lib/python2.6/site-packages/django/contrib/admin/media/ + <DirectoryMatch "/path/to/django-project/askbot/skins/([^/]+)/media"> + Order deny,allow + Allow from all + </DirectoryMatch> + <Directory "/path/to/django-project/askbot/upfiles"> + Order deny,allow + Allow from all + </Directory> + #must be a distinct name within your apache configuration + WSGIDaemonProcess askbot2 + WSGIProcessGroup askbot2 + WSGIScriptAlias / /path/to/django-project/django.wsgi + #make all admin stuff except media go through secure connection + <LocationMatch "/admin(?!/media)"> + RewriteEngine on + RewriteRule /admin(.*)$ https://example.com/admin$1 [L,R=301] + </LocationMatch> + CustomLog /var/log/httpd/askbot/access_log common + ErrorLog /var/log/httpd/askbot/error_log + LogLevel debug + </VirtualHost> + #again, replace the IP address + <VirtualHost 127.0.0.1:443> + ServerAdmin you@example.com + DocumentRoot /path/to/django-project + ServerName example.com + <LocationMatch "^(?!/admin)"> + RewriteEngine on + RewriteRule django.wsgi(.*)$ http://example.com$1 [L,R=301] + </LocationMatch> + SSLEngine on + #your SSL keys + SSLCertificateFile /etc/httpd/ssl.crt/server.crt + SSLCertificateKeyFile /etc/httpd/ssl.key/server.key + Alias /admin/media/ /usr/local/lib/python2.6/site-packages/django/contrib/admin/media/ + WSGIScriptAlias / /path/to/django-project/django.wsgi + CustomLog /var/log/httpd/askbot/access_log common + ErrorLog /var/log/httpd/askbot/error_log + </VirtualHost> + +.. _mod_wsgi: http://code.google.com/p/modwsgi/ +.. _django.wsgi: http://github.com/ASKBOT/askbot-devel/blob/master/askbot/setup_templates/django.wsgi |