~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to doc/man/install.rst

  • Committer: William Grant
  • Date: 2009-06-29 01:55:55 UTC
  • mto: This revision was merged to the branch mainline in revision 1322.
  • Revision ID: grantw@unimelb.edu.au-20090629015555-49xxv0piiieunx8e
Add docs on configuring Apache.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.. IVLE - Informatics Virtual Learning Environment
 
2
   Copyright (C) 2007-2009 The University of Melbourne
 
3
 
 
4
.. This program is free software; you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation; either version 2 of the License, or
 
7
   (at your option) any later version.
 
8
 
 
9
.. This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
.. You should have received a copy of the GNU General Public License
 
15
   along with this program; if not, write to the Free Software
 
16
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 
 
18
************
 
19
Installation
 
20
************
 
21
 
 
22
System requirements
 
23
===================
 
24
 
 
25
Given versions are those on which IVLE is known to work; earlier versions
 
26
might work too. Debian/Ubuntu package names are given after the name of the
 
27
software.
 
28
 
 
29
* Ubuntu 8.04 or later (other distros should work with some tweaking, but are untested)
 
30
* Apache 2.x with modules:
 
31
   + mod_python (``libapache2-mod-python``)
 
32
   + mod_dav_svn and mod_authz_svn (``libapache2-svn``)
 
33
* Python 2.5 or 2.6 with modules:
 
34
   + pysvn (``python-svn``)
 
35
   + cjson (``python-cjson``)
 
36
   + Genshi (``python-genshi``)
 
37
   + ConfigObj (``python-configobj``)
 
38
   + Routes (``python-routes``)
 
39
   + docutils (``python-docutils``)
 
40
   + epydoc (``python-epydoc``)
 
41
   + Storm (``python-storm``)
 
42
   + psycopg2 (``python-psycopg2``)
 
43
* jQuery (``libjs-jquery``)
 
44
* PostgreSQL 8.3 or later (``postgresql``)
 
45
* Subversion (``subversion``)
 
46
* debootstrap (``debootstrap``)
 
47
* GCC and related build machinery (``build-essential``)
 
48
 
 
49
Master versus slave servers
 
50
===========================
 
51
 
 
52
Installing from a Debian package
 
53
================================
 
54
 
 
55
Installing from source
 
56
======================
 
57
 
 
58
While installing from a distribution package is often a better idea for
 
59
users, developers will need to install from a plain source tree.
 
60
 
 
61
To get the tree, either grab and extract a release tarball, or get the
 
62
very latest code using bzr: ::
 
63
 
 
64
   bzr get lp:ivle
 
65
 
 
66
You should then change into the new source directory.
 
67
 
 
68
As IVLE needs to compile some binaries, you must first build, then
 
69
install it: ::
 
70
 
 
71
   ./setup.py build
 
72
   sudo ./setup.py install
 
73
 
 
74
Unlike the package, you will have to manually set up the database and
 
75
configuration.
 
76
 
 
77
.. TODO: Separate IVLE PostgreSQL account.
 
78
 
 
79
First you must create a PostgreSQL database, and populate it with the
 
80
IVLE schema. You may use any name for the database. ::
 
81
 
 
82
   sudo -u postgres createdb ivle
 
83
   sudo -u postgres createlang plpgsql ivle
 
84
   sudo -u postgres psql -d ivle < userdb/users.sql
 
85
 
 
86
The configuration wizard - ``ivle-config`` - will ask you a series of
 
87
questions. Apart from database settings, the defaults should be correct
 
88
for a development system. If deploying IVLE properly - particularly on
 
89
multiple nodes - several options will need to be changed. Watching
 
90
carefully, run: ::
 
91
 
 
92
   sudo ivle-config
 
93
 
 
94
 
 
95
Basic configuration
 
96
===================
 
97
 
 
98
.. Note: Place here only the configuration required to get the system
 
99
   installed and running. Any further configuration should go in config.rst.
 
100
 
 
101
IVLE needs a directory hierarchy in which to store filesystem data, which
 
102
by default lives in ``/var/lib/ivle``. Create it now. ::
 
103
 
 
104
   sudo ivle-createdatadirs
 
105
 
 
106
.. TODO: Setting jail/devmode, jail/suite, jail/extra_packages...
 
107
         We also need to document setting of the default mirror, once
 
108
         issue #150 is fixed.
 
109
 
 
110
You will require a self-contained jail environment in which to safely
 
111
execute student code. The creation process basically downloads a minimal
 
112
Ubuntu system and installs it in ``/var/lib/ivle/jails/__base__``. Note
 
113
that this could download a couple of hundred megabytes. You should
 
114
replace the URL with a good close Ubuntu mirror. ::
 
115
 
 
116
   sudo ivle-buildjail -r -m http://url.to.archive/mirror
 
117
 
 
118
Configuring Apache
 
119
------------------
 
120
 
 
121
IVLE makes use of two Apache virtual hosts: one for the application itself,
 
122
and one for the Subversion services. There are example configuration files
 
123
in ``examples/config/apache.conf`` and ``examples/config/apache-svn.conf``,
 
124
which will run IVLE at ``http://ivle.localhost/``.
 
125
 
 
126
On a Debian or Ubuntu system, just copy those two files into
 
127
``/etc/apache2/sites-available`` under appropriate names (eg. ``ivle`` and
 
128
``ivle-svn``). Then you need to activate them: ::
 
129
 
 
130
   sudo a2ensite ivle
 
131
   sudo a2ensite ivle-svn
 
132
   sudo /etc/init.d/apache2 reload
 
133
 
 
134
 
 
135
.. note::
 
136
   For more advanced configuration, see :ref:`Configuring IVLE
 
137
   <ref-configuring-ivle>`.