365
371
Apache configuration
366
372
====================
373
Apache is used in IVLE for hosting of the IVLE web application and hosting
374
Subversion repositories over WebDAV. Typically the Subversion repository will
375
run on the Master server and the Web Application will be run on a collection
376
of slaves. It is also possible to combine the two function together to run as
382
The IVLE web application runs on Apache using ``mod_python``. An example
383
configuration is provided in the file :file:`examples/config/apache.conf`.
385
At minimum the following settings must be specified:
387
.. describe:: ServerName
389
Should be the formal hostname of the server, typically one that users will
390
use to access IVLE. For example, 'ivle.org'.
392
.. describe:: ServerAlias
394
Should be set to the value of ``[urls] public_host`` that is specified in
395
:file:`ivle.conf`. This is to ensure that Apache will correctly handle
396
requests for the public content.
398
.. describe:: SetHandler
400
Must be ``mod_python``
402
.. describe:: PythonHandler
404
Must be ``ivle.dispatch``
406
.. describe:: PythonOption mod_python.file_session.database_directory
408
Session directory for mod_python. This must be a shared directory between
409
all Slave servers, in particular when operating through a load balancer.
410
If not provided then users will encounter inconsistent behavior such as
411
being thrown back to the login screen after logging in.
413
Optional settings are:
415
.. describe:: PythonOption mod_python.session.cookie_name
417
The name to be set for cookies rather than the one automatically generated
418
by mod_python. For example, 'ivle'.
420
.. describe:: PythonDebug
422
If this option is set, any uncaught errors from mod_python will be sent to
423
the browser rather than being sent to the error log. It is recommended
424
that this setting is only used for development or debugging.
426
Subversion Repository
427
---------------------
428
IVLE also uses Apache to provide HTTP access to user's Subversion repositories
429
using ``mod_dav_svn``. Typically this is run on a single, stand alone server;
430
though it may be run in conjunction with the Web Application. An example
431
configuration is provided in the file :file:`examples/config/apache-svn.conf`.
432
IVLE will automatically generate password hash and repository permission files
433
that are used to control access to the repositories.
435
IVLE expects to find the paths ``users/`` and ``groups/`` at the URL provided
436
by the value of ``[urls] svn_addr`` set in :file:`ivle.conf`. Thus there
437
should be two ``Location`` clauses configured, one for users and one for
447
.. describe:: SVNParentPath
449
Directory where user repositories are stored. Should be the value of
450
``[path] [[svn]] repo_path`` in :file:`ivle.conf` with 'users' appended.
451
For example, '/var/lib/ivle/svn/repositories/users'.
453
.. describe:: AuthzSVNAccessFile
455
Location of the configuration file used to assign permissions to user
456
repositories. Should be the same value as ``[path] [[svn]] conf`` in
459
.. describe:: Require
461
Must be ``valid-user``
463
.. describe:: AuthType
467
.. describe:: AuthName
469
The name that should appear on authentication requests. For example, 'IVLE
470
Subversion repository'.
472
.. describe:: AuthUserFile
474
Location of the password hash file for Subversion users. Should be the
475
same as the value of ``[path] [[svn]] auth_ivle``. For example,
476
'/var/lib/ivle/svn/ivle.auth'.
485
.. describe:: SVNParentPath
487
Directory where user repositories are stored. Should be the value of
488
``[path] [[svn]] repo_path`` in :file:`ivle.conf` with 'groups' appended.
489
For example, '/var/lib/ivle/svn/repositories/groups'.
491
.. describe:: AuthzSVNAccessFile
493
Location of the configuration file used to assign permissions to group
494
repositories. Should be the same value as ``[path] [[svn]] group_conf`` in
497
.. describe:: Require
499
Must be ``valid-user``
501
.. describe:: AuthType
505
.. describe:: AuthName
507
The name that should appear on authentication requests. For example, 'IVLE
508
Subversion repository'.
510
.. describe:: AuthUserFile
512
Location of the password hash file for Subversion users. Should be the
513
same as the value of ``[path] [[svn]] auth_ivle``. For example,
514
'/var/lib/ivle/svn/ivle.auth'.