skyBuilders HomePage    skyBuilders Mailman Installation Document
Jesse Burkhardt

I. Inroduction
II. GNU Mailman Installation
III. Apache Confiuration
IV. Sendmail Configuration
V. Miscellaneous Notes

I. Introduction

* The software and platforms pertaining to this particular installation document are as follows: 1.) Patform, Red Hat 9.0; 2.) List Server, GNU Mailman 2.1.2; 3.) Web Server, Apache 2.0.40-21; 4.) Mail Server (MTA), Sendmail 8.12.8-4.

This document describes the steps taken to install GNU Mailman and how to integrate it into the Apache and Sendmail. This describes a step process stating exactly each step performed to create an overall installation. All of the information herein is already available, but spread out over disparate sources. Nowhere have I found this information tied together to relate a step by step installation process.

Caveats: Having subscribed to the Mailman users list I was advised to avoid using the version of Mailman shipping with RedHat 9.0. Also note that if you select to use a binary RPM installation of Mailman you will be deprived of the benefit of having the various README files shipping with the source. These are very helpful files without which I could not have made my installation occur. Furthermore, you will find it necessary to rebuild Mailman in such a way as to ensure priviliges are correct for interoperation with the Apache web server if you are going to make use of it (highly recommended).

This document will outline three phases of Mailman installation: building and installing Mailman itself, integration with the Apache web server, the final steps required to make use of Sendmail as an mail transport agent (MTA).

II. GNU Mailman Installation

* Note: Read section on mm_cfg.py at the end of the Sendmail discussion (item IV. below) before actually doing these steps.
[Remove old objects]

    % make clean

[Reconfiure]

    % ./configure --with-cgi-gid=apache

[Remake]

    % make install

[Check]

    % /usr/local/mailman/bin/check_perms

[if error, fix]

    % /usr/local/mailman/bin/check_perms -f

[and check again]

    % /usr/local/mailman/bin/check_perms

[Base Ownership]

    % chown -R mailman:mailman /usr/local/mailman

III. Apache Confiuration

It is important that this configuration setting be done before running the Makefile. [see above, II.]
    % ./configure --with-cgi-gid=apache
Read ./mailman/Mailman/Defaults.py for config info.

Important settings in getting MM to work with Apache: Sample httpd.conf entry:
    <VirtualHost 10.10.40.22>
        ServerName mailman.skybuilders.com
        ServerAlias lists.bopnews.com
        DocumentRoot /usr/local/mailman/
        ScriptAlias  /mailman/ /usr/local/mailman/cgi-bin/
        Alias /icons/ /usr/local/mailman/icons/
        Alias /pipermail/ /usr/local/mailman/archives/public/
        Options FollowSymLinks ExecCGI
        ServerAdmin jesse@skybuilders.com
        ServerSignature email
        DirectoryIndex index.php index.html index.shtml index.pl
        AddType application/x-httpd-php .php .php4 .php3 .phtml .html .xml .py
        AddHandler cgi-script cgi pl py
    </VirtualHost>
	
    <Directory /usr/local/mailman/cgi-bin/>
        AllowOverride None
        Options FollowSymLinks ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
* Note: It will be necessary to restart the Apache httpd daemon after making these edits.

IV. Sendmail Confiuration

From, README.SENDMAIL:
    One of the surest performance killers for Sendmail users is when
    Sendmail is configured to synchronously verify the recipient's
    host via DNS.  If it does this for messages posted to it from
    Mailman, you will get horrible performance.  Since Mailman usually
    connects via localhost (i.e. 127.0.0.1) to the SMTP port of
    Sendmail, you should be sure to configure Sendmail /not/ to do DNS
    verification synchronously for localhost connections.
Look in the .../mailman/contrib/ directory for ideas and docs about where to begin with this process.

Make sure that the Sendmail smrsh feature is enables in your M4 config file.

Then:
    % cd /etc/smrsh
    % ln -s /usr/local/mailman/mail/mailman mailman
I added this to the Sendmail /etc/mail/mailertable (domain routing) file:
    lists.bopnews.com   mailman:list.bopnews.com
* Caution: Do not make the mistake of adding this domain entry, list.bopnews.com, to the Sendmail /etc/mail/local-host-names (local domains) file. This has the effect of intercepting the lists subdomain traffic for Sendmail, but not routing it to the Mailman daemon.

In other words, since this domain is routed to the Mailman daemon, via Sendmail's mail transport agent, we do not want Sendmail to treat this as a mail domain that it manages. For this reason it important that a separate DNS zone, with its own MX records referring to an A record pointing to lists.bopnews.com, is created for the list server's function alone. This would allow us to use the parent domain, bopnews.com, to have its own MX records for the purpose of managing mail accounts separate from the lister server's, in which case we could place the bopnews.com entry (non-recursing) into Sendmail's /etc/mail/local-host-names (local domains) file.

From ./contrib/mm-handler.readme: A. Barry warns that Mailman now needs you to modify your ./Mailman/mm_cfg.py file, adding this line. (You must restart the Mailman daemon after this edit.):

Appended to /usr/local/mailman/Mailman/mm_cfg.py:
    # This setting is recommened, but does not seem to apply to MM 2.1.2
    #MTA = None
	
    # Ususally on by default, this allows all DNS resolutions to work
    VIRTUAL_HOST_OVERVIEW = Off
	
    #DEFAULT_EMAIL_HOST = 'mailman.skybuilders.com'
    #DEFAULT_URL_HOST = 'mailman.skybuilders.com'
    #add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
    #
    # It may be possible to add various virtual hosts here with successive
    # calls to add_virtualhost(). - JSB
* Note: You must copy the file mm_cfg.py.dist.in , at ./mailman/Mailman/, to a file called mm_cfg.py within the source layout. Then make the above edits before compiling (item II. above) the python source scripts . (Those lines that are commented out have yet to be applied in out confiuration.)

I added the following to the Sendmail /etc/mail/access file (for spam/access control): (* Note: that this step was not in any literature that I had seached.)
    # Need these for our Mailman list server routing
    lists.bopnews.org        RELAY
V. Miscellaneous Notes

These are a complete list (helpful comments within the source code) of the contents of the Mailman-2.1.2 tar file at:

http://readme.skybuilders.com/docs/mailman-2.1.2/.

Essential files to read are: This is the DNS zone file for the subdomain lists.bopnews.com:
$ORIGIN .
$TTL 3600       ; 1 hour
lists.bopnews.com IN SOA nsi1.skybuilders.com. bobdoyle.skybuilders.com. (
        2          ; serial
        28800      ; refresh (8 hours)
        7200       ; retry (2 hours)
        604800     ; expire (1 week)
        86400      ; minimum (1 day)
            )
        NS      nsi1.skybuilders.com.
        NS      nsi2.skybuilders.com.
;
        MX      10 lists.bopnews.com.
        MX      30 skymail3.skybuilders.com.
        MX      50 skymail4.skybuilders.com.
;
        A       10.10.40.22
;
Edit  |  workFlow  |  Subscribe
Language: fr  | it  | de  | es  | pt  | ar  | he  | da  | nl  | zh  | ja  | ko  | none 
Author: jesse

This Version:
Archived at: https://www.skybuilders.com/Users/Jesse/Docs/mailmanInstallation.20040205173640.html

Requests
 Version: 3611 | Series: 3611