Caucus How-To: Virtual Hosts
I. Introduction

This page describes how to use WWW "Virtual Hosting" in combination with Caucus to supply different Caucus interfaces for different virtual hosts on a single host computer.

"Virtual Hosting" is a feature of the Apache httpd server (and possibly others).  It provides a way to make a single host computer look like different, multiple, web hosts.  Each such "virtual" host, when accessed through a web browser, has its own distinct web document tree.

Each of those virtual hosts can also have its own distinct Caucus interface, as well.  And yet the virtual hosts will share the same installation of Caucus, and potentially the same set of conferences.

The rest of this page describes, by example, how to implement this.  The discussion assumes basic familiarity with the Apache httpd server, and experience installing Caucus on a single web host.

 

II: Virtual host setup.

Assume two hostnames, "gamgee.host.edu", and "frodo.host.edu", both of which point to the same machine (originally called "original.host.edu"). The httpd server is installed in the directory /caucus/HTTPD.

To implement virtual hosting in the httpd server, modify the httpd server configuration file httpd.conf to include these entries for the two virtual hosts:

   <VirtualHost gamgee.host.edu>
   DocumentRoot /caucus/HTTPD/GAMGEE
   ServerName   gamgee.host.edu
   </VirtualHost>
   
   <VirtualHost frodo.host.edu>
   DocumentRoot /caucus/HTTPD/FRODO
   ServerName   frodo.host.edu
   </VirtualHost>
Make sure to remove any other definitions of DocumentRoot and ServerName elsewhere in the configuration file(s).

Note that each virtual host has its own document tree, in /caucus/HTTPD/GAMGEE, and /caucus/HTTPD/FRODO, respectively.

 

III: CML files for each virtual host's interface

Assume that Caucus is already installed in /caucus, and that it is just being modified to allow virtual hosting.

On the Caucus side, start by creating the actual new interfaces for each virtual host.  Copy all of the files (and directories) under /caucus/CML/CS41 to a new directory, called /caucus/CML/GAMGEE.

Do the same thing for /caucus/CML/FRODO.

If self-registration is allowed, create duplicates of the /caucus/CML/REG directory, say REGF (for FRODO) and REGG (for GAMGEE).  Edit /caucus/CML/REGG/register.cml, and change the line "set dir REG40" to "set dir REGG".  Make the equivalent change in REGF.

Edit /caucus/CML/REGG/registef.cml, and change "CS41" to "GAMGEE".  Make the equivalent change in REGF.

 

Section IV: HTML files for starting Caucus

Assume that the virtual hosts are only used for Caucus, so the DocumentRoot index.html files for each virtual host can take the user's browser right into Caucus.

Start by copying

and likewise for FRODO.

Edit the link in the index.html file to point to the appropriate host and unique CGI files.  For example, in GAMGEE's index.html file, the <A HREF...> line in

If you already have a userid and password, go to the 
<A HREF="http://original.host.edu/sweb/swebsock/0/0/CS41/center.cml?0+0+x+x+x+x+x+x">
Caucus Welcome Page</A>.
is changed to:
<A HREF="http://gamgee.host.edu/sweb/swebsock/0/0/GAMGEE/center.cml?0+0+x+x+x+x+x+x">

Do the equivalent change for FRODO's index.html file.

If the virtual hosts should have self-registration of Caucus userids, make the equivalent changes for that link as well (from REG40 to REGG and REGF) to GAMGEE and FRODO's index.html files.

 

V. That's It!

Presumably some other aspect of GAMGEE's or FRODO's CML interface files will also be changed (otherwise, why have different interfaces in the first place?).

It is recommended that you start by making small changes to GAMGEE and FRODO's center.cml files.  This way you can confirm that the virtual hosting and separate interfaces are, in fact, working properly.