# 5 Set up your web server

Congratulations! You've installed the Mailman software. To get everything running you need to hook Mailman up to both your web server and your mail system.

If you plan on running your mail and web servers on different machines, sharing Mailman installations via NFS, be sure that the clocks on those two machines are synchronized closely. You might take a look at the file Mailman/LockFile.py; the constant CLOCK_SLOP helps the locking mechanism compensate for clock skew in this type of environment.

This section describes some of the things you need to do to connect Mailman's web interface to your web server. The instructions here are somewhat geared toward the Apache web server, so you should consult your web server documentation for details.

You must configure your web server to enable CGI script permission in the $prefix/cgi-bin to run CGI scripts. The line you should add might look something like the following, with the real absolute directory substituted for $prefix, of course:

        Exec        /mailman/*      $prefix/cgi-bin/*

or:

        ScriptAlias /mailman/       $prefix/cgi-bin/

Warning: You want to be very sure that the user id under which your CGI scripts run is not in the `mailman` group you created above, otherwise private archives will be accessible to anyone.

Copy the Mailman, Python, and GNU logos to a location accessible to your web server. E.g. with Apache, you've usually got an icons directory that you can drop the images into. For example:

        % cp $prefix/icons/*.{jpg,png} /path/to/apache/icons

You then want to add a line to your $prefix/Mailman/mm_cfg.py file which sets the base URL for the logos. For example:

      IMAGE_LOGOS = '/images/'

The default value for IMAGE_LOGOS is /icons/. Read the comment in Defaults.py.in for details.

Configure your web server to point to the Pipermail public mailing list archives. For example, in Apache:

        Alias   /pipermail/     $varprefix/archives/public/

where $varprefix is usually $prefix unless you've used the --with-var-prefix option to configure. Also be sure to configure your web server to follow symbolic links in this directory, otherwise public Pipermail archives won't be accessible. For Apache users, consult the FollowSymLinks option.

If you're going to be supporting internationalized public archives, you will probably want to turn off any default charset directive for the Pipermail directory, otherwise your multilingual archive pages won't show up correctly. Here's an example for Apache, based on the standard installation directories:

        <Directory "/usr/local/mailman/archives/public/">
            AddDefaultCharset Off
        </Directory>

Also, you may need to specifically allow access to Mailman's directories. For example, in Apache, the above Directory block may need something like

            Require all granted

or

            Order allow,deny
            Allow from all

depending on the Apache version and similarly for the $prefix/cgi-bin/ directory.

Now restart your web server.