Setting up a Web Server to Work with Mallard

(with details for Apache httpd.conf setup)

What sort of web server can I use?

You may use any server you like, as long as it may be configured as described below. The actual mechanism for configuring and setting up the server will vary by vendor, but you should be able to change the user id and document root of the server, set the port, etc. Note that "the server" may be a virtual server, if you are already serving other documents on the machine.

We suggest that you use a server configured to use SSL (Secure Sockets Layer) but this is not strictly required.

How does the web server work with Mallard?

Mallard is a set of CGI programs and associated library modules. The server must be set up to serve these documents. You may install a new web server without disturbing Mallard, or install a new version of Mallard without disturbing the web server. Both the web server and Mallard may be installed wherever you like. The web server relates to Mallard only in that it (1) runs as user mallard and (2) has the document root set up to serve the Mallard cgi scripts.

How do I configure the server to do that?

You will need to configure the server in the following manner:

The rest of the configuration settings, such as the server admin, the port, and the server URL, do not relate directly to Mallard and may be set up as you like.

All together then, what does the relevant part of your httpd.conf look like?

A snip of my httpd.conf file is given below:

# Mallard server document root
<Directory "/usr/local/webdata/mallard/docs">
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

# Find index.cgi before index.html
DirectoryIndex index.cgi index.html index.htm

# Enable cgi files ending in .cgi anywhere under the document root.
AddHandler cgi-script .cgi

# General setup
Port 80
DocumentRoot "/usr/local/webdata/mallard/docs"
ServerName zax.csl.uiuc.edu
ServerAdmin maiko@wocket.uiuc.edu
User mallard
Group mallard
DirectoryIndex index.cgi index.html index.htm

# Export the $MALLARD_HOME environment variable
setenv MALLARD_HOME /usr/local/webdata/mallard

# Log format stuff
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

# Logs
ErrorLog /usr/local/webdata/mallard/logs/errors
CustomLog /usr/local/webdata/mallard/logs/access combined

How will I know if I've been successful?

After making the above edits, stop and restart the server. Then, go to the "base URL" for Mallard, which should be something like http://mallard.my_school.edu/. If you have set things up successfully, you should see the green page with the Mallard logo on it.


Questions? Comments? General harrassment? Mail it to mcovingt@staff.uiuc.edu.