Installing and using mod_roaming -------------------------------- Installing and using mod_roaming compromises three steps: 1. Linking the mod_roaming module with Apache. 2. Configuring the mod_roaming module. 3. Configuring Netscape Communicator The following requirements exists for installing and using mod_roaming: * Apache 2.0.32 or higher. The default directory layout (Apache) of Apache 2.0.32 is assumed in this guide. Change the filenames at will. * A C compiler. * Netscape Communicator or Navigator 4.5 or higher. If you run into problems, check the Known Problems section at the end. Linking the mod_roaming module with Apache ========================================== 1. Change the current directory to the directory that contains mod_roaming.c 2. Execute the following command: > apxs -i -a -c mod_roaming.c The module will be compiled, installed in the libexec directory of your configuration and the httpd.conf file will be updated. The apxs command can be found in the directory that also contains apachectl, typically PREFIX/sbin. Configuring mod_roaming ======================= 1. Edit your httpd.conf file and add a line like the following: RoamingAlias /roaming /usr/local/apache/roaming The first argument is the uri prefix that mod_roaming will respond to, the second argument is the directory where the roaming access files will be stored. Make sure the webserver has write permissions to this directory. Preferrably, no other user should have read or write permissions to this directory to protect the privacy of the users. A subdirectory is automatically created for each user, e.g. the roaming access files for user vinny will be stored under /usr/local/apache/roaming/vinny and can be accessed via http:///roaming/vinny/... Multiple mod_roaming directives may be used to set up multiple roaming uri's. You do not have to set up directories for the individual users. These are automatically created the first time someone uses Roaming Access. 2. Make sure that any requests made to the roaming directory are authorized. You can do this in a number of different ways: a. by putting a .htaccess file in the roaming directory (e.g. /usr/local/apache/roaming). If you do this, make sure Apache is reading the .htaccess file and the directives in it are allowed (AllowOverride AuthConfig), b. by putting a block in httpd.conf, or c. by putting a block in httpd.conf. This file or block should contains something like this: AuthUserFile /usr/local/apache/conf/roaming-htpasswd AuthType Basic AuthName "Roaming Access" require valid-user The roaming-htpasswd can be created by using the htpasswd program that comes with the Apache distribution. Try accessing the URL http:///roaming//liprefs to check whether authentication has been configurated correctly. These steps make sure access to the roaming files is authenticated. However, basic authentication is very weak and passwords can be snooped from the connection. SSL would be even better, but Netscape Communicator 4.5 refuses to connect to https URL's when they are entered as the Roaming URL. 3. Stop Apache and start it again (restarting after rebuilding a DSO module sometimes causes Apache to hang or crash). Configuring Netscape Communicator ================================= There are two ways roaming access can be enabled with Netscape Communicator: 1. You can change an existing user profile to use the Roaming Access server 2. You can create a new user profile that uses the settings on a Roaming Access server. Enabling Roaming Access for an existing user profile ---------------------------------------------------- 1. Start Netscape Communicator. 2. Open the Preferences dialog. 3. Go to the "Roaming Access" pane. 4. Check the "Enable Roaming Access for this profile" checkbox. 5. Enter your username below and optionally check the "Remember my roaming password" checkbox. 6. Go to the "Server Info" pane. 7. Select the "HTTP Server" radio button. 8. Enter the Roaming URL, e.g. http://www.foo.com/roaming/vinny You can replace the userid with the string $USERID or %USERID% to let Netscape Communicator replace it with the userid entered in the previous pane. 9. Go to the "File Selection" pane. 10. Select the files you want to be stored on the Roaming Access server. Depending upon your trust of the network and the server you may or may not want to store the Java Security or Certificates and Private Keys file on the Roaming Access Server. Storing the History file on the server may not be very useful and may consume valuable bandwidth. Known problems ============== The following known and unresolved issues exist with mod_roaming and Roaming Access: * There can be problems when you access the Roaming Access server through a proxy. Roaming Access uses the non-standard HTTP MOVE request method to atomically update the files. Some proxies (including Squid) do not pass these requests through to the server. If you cannot bypass by the proxy by putting the roaming server in the "Do not use proxies for domains beginning with" list, one way to get around this is to add the line user_pref("li.server.http.useSimplePut", true); to your Preferences file. However, I have used before and it gives a lot of hassle (sometimes it disappears and reverts back to the old way of doing things). * It is not possible to use SSL (i.e. a URL starting with https://) with Roaming Access. This is not a problem in mod_roaming, but caused by Netscape Communicator not supporting it, therefore I cannot solve the problem.