Home| Screenshots |Requirements |Installation| Docs| Project Page | Download

course/control: Installation Notes

1. What you need.

A. A Webserver that supports Basic Authentication (i.e. Apache, iPlanet, IIS, Xitami, etc.)
B. PostgreSQL >= 7.2.0 --
C. PHP >= 4.2.0 --

2. What you probably want.

A. LDAP libraries. -- -- Only if your directory services are LDAP, of course
B. Yaz --
C. Some Fax daemon software. I recommend Hylafax ( if you don't already have something.
D. Perl 5 or greater. --
E. Sudo --


1. Install PostgreSQL, LDAP, Yaz and Hylafax (or your preference).

2. Install Apache/PHP. Configure PHP with the following:

./configure \
[choose either static or DSO installation (i.e. --with-apache=/path/to/apache/src)] \
--with-pgsql=/path/to/postgresql \
--with-ldap=/path/to/ldap \

3. Untar/ungzip the course/control archive.

4. As your PostgreSQL superuser (most likely postgres), create the course/control db users:

/path/to/pgsql/bin/createuser wwwuser
/path/to/pgsql/bin/createuser www_readonly
For both, when it asks if this user can create new databases or users, enter 'no'.

5. Create the database structure by running the command from the supplemental/sql directory:

/path/to/pgsql/bin/psql template1 < reserves_postgresql.sql
template1 can be any currently existing database. If you are in doubt, just use template1.

6. Move the coursecontrol directory to wherever you want it in your webroot.

7. Move the reserves directory somewhere in your webroot outside of the coursecontrol directory. Change line 41 in both coursecontrol/index.php and reserves/index.php to wherever you placed this file.

8. Move the supplemental/coursecontrol_configuration.php somewhere **outside** of the web hierarchy. I would recommend your Apache conf directory or somewhere like that. Make sure it is only readable by the user that your webserver runs as and root, and only writeable by root.

9. Edit the variables in coursecontrol_configuration.php for your site.

10. Create a directory for uploads and incoming faxes to be claimed. I recommend something like /path/to/webroot/incoming.

11. If the user that your web server runs as cannot write to the web hierarchy, move supplemental/reserveMover to /usr/local/bin.

Either choose or create a new user that has write access to the web hierarchy, (i.e. adduser coursecontrol).
Change ownership of reserveMover to this user (chown coursecontrol /usr/local/bin/reserveMover)
Using visudo, add a line to the /etc/sudoers file that looks like:
nobody ALL= (coursecontrol) NOPASSWD:/usr/local/bin/reserveMover
with "nobody" being the user the web server runs as and "../cc-0.5a/coursecontrol" being the user that has write access to the web hierarchy.

12. If you are using Hylafax, back up your /path/to/hylafax/bin/faxrcvd file and replace it with the supplied hylafax/faxrcvd file.

Change the variables to be appropriate for your server environment.

13. Set up authentication in your web server for the coursecontrol and reserves directories. It can be any kind of basic authentication.

14. In postgres, add a Reserve Desk to the "units" table and an initial administrator in the staff table -- For the role field, use "1". The "primary unit" field should be whatever this Reserve Desk id is. "units.nickname" corresponds to the "skin" directory, so, for now, copy the coursecontrol/skins/default directory to coursecontrol/skins/[whatever nickname you entered].

15. Log into the staff interface via

Create an instructor in order to use the instructor interface. The instructor interface can be accessed via:
The student interface can be accessed via:

16. Use to your heart's content.

course/control News and Announcements
course/control User's List

Hosted by:
SourceForge Logo

Last Modified: October 1, 2002 by Ross Singer