aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL604
1 files changed, 2 insertions, 602 deletions
diff --git a/INSTALL b/INSTALL
index 63eb0b60..8a3ab134 100644
--- a/INSTALL
+++ b/INSTALL
@@ -2,608 +2,8 @@ Mailman - The GNU Mailing List Management System
Copyright (C) 1998-2004 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-This file contains installation instructions for GNU Mailman, which is
-configured using the standard GNU autoconf software. You first need
-to prepare your system as outlined in the sections below, and then
-configure and install the Mailman software.
-
-UPGRADING: Upgrading is usually as easy as just installing the new
-version over the existing installation. However, you should read the
-notes in the file UPGRADING for important information before you
-upgrade.
-
-The GNU Mailman website is at http://www.list.org
-
-GNU Mailman can be downloaded from
-http://sf.net/project/showfiles.php?group_id=103
-
-
-0. Installation requirements
-
- You must have a mail server (MTA) that you can send messages to,
- and a web server that supports the CGI/1.1 API. Apache makes a
- fine choice for web server, and MTAs such as Postfix, Exim,
- Sendmail, and qmail should work just fine.
-
- You will need an ANSI C compiler to build Mailman's security
- wrappers. The GNU C compiler gcc 2.8.1 or later is known to work
- well. For more information about obtaining gcc, see
-
- http://gcc.gnu.org
-
- You must have the Python interpreter installed somewhere on your
- system. Currently Python 2.1 or newer is required, with the
- latest patch release on any specific branch being recommended. As
- of this writing (10-Nov-2003) that is Python 2.1.3, Python 2.2.3,
- and Python 2.3.2.
-
- For information about obtaining Python source code, RPM packages,
- or pre-compiled binaries please see:
-
- http://www.python.org
-
- If you are building Python from source, you should be fine with
- the standard "./configure ; make install" for most Unix-like
- OSes. If you run "make test", you'll see a bunch of tests skipped
- -- don't worry, you probably won't need them. Mailman tries to
- stick to the basics that compile on most systems.
-
- If there is a README.<yourMTA> file that describes your mail
- server (MTA), read it now. Some MTAs can be integrated more
- seamlessly with Mailman for support of some advanced features
- (like creation and removal of lists through-the-web). Examples
- are Exim and Postfix. Setup instructions for specific MTAs are
- contained in these README files.
-
-
-1. System setup
-
- You will need to be root to perform the steps in this section.
-
- Before installing the Mailman software, you need to prepare your
- system by adding certain users and groups.
-
- - Add a new user called `mailman'. Typically this is added to
- your /etc/passwd file. If username `mailman' is already in use,
- choose something else unique and see the --with-username flag
- below.
-
- - Add a new group called `mailman'. Typically this is added to
- your /etc/group file. The Mailman files will be installed under
- the `mailman' group, with the set-group-id bit. Mailman's
- security is based on group-ownership permissions, so it is
- important to get this step right. If groupname `mailman' is
- already in use, choose something else unique and see the
- --with-groupname below. The mailman user created in the
- previous step must be a member of this group.
-
- - Create an installation directory (called $prefix in the
- documentation that follows). All of the Mailman files will be
- installed under $prefix. Run "configure --help" for ways to
- split the installation based on read-only vs. read/write files.
-
- The default installation directory for Mailman 2.1 is
- /usr/local/mailman. It used to be /home/mailman for all
- versions prior to Mailman 2.1alpha2. You can override the
- default by using the --prefix option to configure (see below).
- If you're upgrading from a version previous to Mailman 2.1, you
- will need to use --prefix unless you move your mailing lists
- (this can be a wise upgrade strategy).
-
- Watch out if your site does something like mount /usr/local with
- the nosuid option. This will break Mailman, which relies on
- set-gid programs for its security. If this describes your
- environment, simply install Mailman in a location that allows
- setgid programs.
-
- Make sure the install directory is set to group `mailman' (or
- whatever you're going to specify as --with-groupname) and has
- the setgid bit set (but see README.BSD if you're on a BSD
- system). You probably also want to guarantee that this
- directory is readable and executable by everyone. For example,
- these shell commands will accomplish this:
-
- % cd $prefix
- % chgrp mailman .
- % chmod a+rx,g+ws .
-
- You are now ready to configure and install the Mailman software.
-
-
-2. Running configure
-
- TAKE SPECIAL NOTE OF THE --with-mail-gid AND --with-cgi-gid
- OPTIONS BELOW. YOU WILL PROBABLY NEED TO USE THESE!
-
- You should not be root while performing the steps in this section.
- Do them under your own login, or whatever account you typically
- use to install software. You do not need to do these steps as
- user mailman, but you could. However, make sure that the login
- used is a member of the mailman group as that that group has write
- permissions to the $prefix directory made in the previous step.
-
- Make sure that you have write permissions to the target
- installation directory, and permission to create a setgid file in
- the file system where it resides (NFS and other mounts can be
- configured to inhibit setgid settings).
-
- If you've installed other GNU software, you should be familiar
- with the configure script. Usually you can just cd to the
- directory you unpacked the Mailman source tarball into, and run
- configure with no arguments:
-
- % cd mailman-<version>
- % ./configure
- % make install
-
- The following options allow you to customize your Mailman
- installation.
-
- --prefix=<dir>
- Standard GNU configure option which changes the base
- directory that Mailman is installed into. By default
- $prefix is /usr/local/mailman. This directory must
- already exist, and be set up as described in section 1
- above.
-
- --exec-prefix=<dir>
- Standard GNU configure option which lets you specify a
- different installation directory for architecture
- dependent binaries.
-
- --with-var-prefix=<dir>
- Store mutable data under <dir> instead of under the prefix
- or exec_prefix. Examples of such data include the list archives
- and list settings database.
-
- --with-python=</path/to/python>
- Specify an alternative Python interpreter to use for the
- wrapper programs. The default is to use the interpreter
- found first on your shell's $PATH. Note that when running
- the scripts from the command line, the first Python
- interpreter found on $PATH is always used.
-
- --with-username=<username-or-uid>
- Specify a different username than `mailman' to use as a
- default. Use this only if the username `mailman' is
- already in use by somebody (e.g. Mark Ailman's login
- name). This switch can take an integer user id or a user
- name. Be sure your $prefix directory is owned by this
- user.
-
- --with-groupname=<groupname-or-gid>
- Specify a different groupname than `mailman' to use as a
- default. Use this only if the groupname `mailman' is
- already in use. This switch can take an integer group id
- or a group name. Be sure your $prefix directory is
- group-owned by this group.
-
- --with-mail-gid=<group-or-groups>
- Specify an alternative group for running scripts via the
- mail wrapper. <group-or-groups> can be a list of one or
- more integer group ids or symbolic group names. The first
- value in the list that resolves to an existing group is
- used. By default, the value is the list
- `mailman other mail daemon'.
-
- This is highly system dependent and you must get this
- right, because the group id is compiled into the mail
- wrapper program for added security. On systems using
- sendmail, the sendmail.cf configuration file designates
- the group id of sendmail processes using the "DefaultUser"
- option. (If commented out, it still may be indicating the
- default...)
-
- Check your MTA's documentation and configuration files to
- find the right value for this switch.
-
- --with-cgi-gid=<group-or-groups>
- Specify an alternative group for running scripts via the
- CGI wrapper. <group-or-groups> can be a list of one or
- more integer group ids or symbolic group names. The first
- value in the list that resolves to an existing group is
- used. By default, the value is the the list
- `www www-data nobody'.
-
- The proper value for this is dependent on your web server
- configuration. You must get this right, because the group
- id is compiled into the CGI wrapper program for added
- security, and no Mailman CGI scripts will run if this is
- incorrect.
-
- If you're using Apache, check the values for the `Group'
- option in your httpd.conf file.
-
- --with-cgi-ext=<extension>
- Specify an extension for cgi-bin programs. The CGI
- wrappers placed in $PREFIX/cgi-bin will have this
- extension (some web servers require an extension).
- <extension> must include the dot.
-
- --with-mailhost
- Specify the fully qualified host name part for outgoing email.
- After the installation is complete, this value can be overriden in
- $prefix/Mailman/mm_cfg.py.
-
- --with-urlhost
- Specify the fully qualified host name part of urls. After the
- installation is complete, this value can be overriden in
- $prefix/Mailman/mm_cfg.py.
-
- --with-gcc=no
- Don't use gcc, even if it is found. In this case, `cc'
- must be found on your $PATH.
-
-
-3. Check your installation
-
- After you've run "make install", you can check that your
- installation has all the correct permissions and group ownerships
- by running the check_perms script:
-
- - cd to $prefix
-
- - Run bin/check_perms
-
- Don't try to run bin/check_perms from the source directory; it
- will only run from the install (i.e. $prefix) directory.
-
- If this reports no problems, then it's very likely <wink> that
- your installation is set up correctly. If it reports problems,
- then you can either fix them manually, re-run the installation, or
- use check_perms to fix the problems (probably the easiest
- solution):
-
- - You need to become the user that did the installation (and that
- owns all the files in $prefix), or root.
-
- - Run bin/check_perms -f
-
- - Repeat previous step until no more errors are reported!
-
-
-4. Final system set-up
-
- 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 MTA and web server 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.
-
- - Configure your web server to give $prefix/cgi-bin permission to
- run CGI scripts. You probably need to be root to do this.
-
- 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/
-
- Consult your web server's documentation for details.
-
- - 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.
-
- Consult your web server's documentation for details. 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.
-
- Also, 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>
-
- Now restart your web server.
-
- - Create a "site-wide" mailing list. This is the one that
- password reminders will appear to come from. Usually this
- should be the "mailman" mailing list, but if you need to change
- this, be sure to change the MAILMAN_SITE_LIST variable in
- mm_cfg.py (see below).
-
- % bin/newlist mailman
-
- Follow the prompts, and see the README file for more
- information.
-
- Now configure your site list. There is a convenient template
- for a generic site list in data/sitelist.cfg to help you with
- this. The template can be applied to your site list by running:
-
- % bin/config_list -i data/sitelist.cfg mailman
-
- Before doing this, review the configuration options in the
- template (note that many options are not changed by
- sitelist.cfg). After you do this, be sure you review the
- configurations via the admin pages for this list.
-
- Be sure to subscribe yourself to the site list, but use the
- admin interface because mailback subscription confirmations
- won't work at this point.
-
- - Set up the crontab entries. Mailman runs a number of cron jobs
- for its basic functionality. Note that if you're upgrading from
- a previous version of Mailman, you'll want to install the new
- crontab, but be careful if you're running multiple Mailman
- installations on your site! Changing the crontab could mess
- with other parallel Mailman installations.
-
- If your version of crontab supports the -u option, you must be
- root to do this next step. Add $prefix/cron/crontab.in as a
- crontab entry by executing these commands:
-
- % cd $prefix/cron
- % crontab -u mailman crontab.in
-
- If you used the --with-username option, use that user name
- instead of mailman for the -u argument value. If your crontab
- does not support the -u option, try these commands:
-
- % cd $prefix/cron
- % su - mailman
- % crontab crontab.in
-
- - Start the Mailman qrunner daemon, by executing the following
- from the $prefix directory:
-
- % bin/mailmanctl start
-
- If you want to start Mailman every time you reboot your system,
- and your OS supports the chkconfig command (e.g. RedHat and
- Mandrake Linuxes) you can simply do the following (as root, from
- the Mailman install directory):
-
- % cp scripts/mailman /etc/init.d/mailman
- % chkconfig --add mailman
-
- (Note that /etc/init.d may be /etc/rc.d/init.d on some systems.)
-
- On Debian, you probably want to use
-
- % update-rc.d mailman defaults
-
- instead of chkconfig.
-
- For Unixes that don't support chkconfig, simply copy
- scripts/mailman as above:
-
- % cp scripts/mailman /etc/init.d/mailman
-
- then set up the following symbolic links, again as root:
-
- % cp misc/mailman /etc/init.d
- % cd /etc/rc.d/rc0.d
- % ln -s ../init.d/mailman K12mailman
- % cd ../rc1.d
- % ln -s ../init.d/mailman K12mailman
- % cd ../rc2.d
- % ln -s ../init.d/mailman S98mailman
- % cd ../rc3.d
- % ln -s ../init.d/mailman S98mailman
- % cd ../rc4.d
- % ln -s ../init.d/mailman S98mailman
- % cd ../rc5.d
- % ln -s ../init.d/mailman S98mailman
- % cd ../rc6.d
- % ln -s ../init.d/mailman K12mailman
-
- - Check the values for DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST in
- Defaults.py. Make any necessary changes in the mm_cfg.py file.
- Note that if you change either of these two values, you'll want
- to add the following afterwards in the mm_cfg.py file:
-
- add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
-
- Note that you will want to run bin/fix_url.py to change the domain
- of an existing list.
-
-
-5. Customize Mailman
-
- You should do these steps using the account you installed Mailman
- under in section 2 above.
-
- - The file $prefix/Mailman/Defaults.py contains a number of
- defaults for your installation. If any of these are incorrect,
- override them in $prefix/Mailman/mm_cfg.py, NOT IN Defaults.py!
- See the comments in Defaults.py for details. Once a list is
- created, editing many of these variables will have no effect.
- At that point, you'll need to configure your lists through the
- web admin interface or through the command line script
- bin/withlist or bin/config_list.
-
- The install process will not overwrite an existing mm_cfg.py
- file so you can freely make changes to this file.
-
- Note: Do *not* change HOME_DIR or MAILMAN_DIR. These are set
- automatically by the configure script.
-
- - Create the site password using:
-
- % $prefix/bin/mmsitepass <your-site-password>
-
- This password can be used anywhere that individual user or
- mailing list administrator passwords are required, giving the
- mailman site administrator the ability to adjust these things
- when necessary.
-
- You may also want to create a password for the site-wide "list
- creator" role (someone other than the site administrator who as
- privileges to create and remove lists through the web). Use the
- -c option to mmsitepass to set this.
-
-
-6. Getting started
-
- See the README file under the section "CREATE YOUR FIRST LIST" for
- a quick introduction to creating an initial test list.
-
-
-7. Troubleshooting
-
- If you encounter problems with running Mailman, first check the
- "Common Problems" section, below. If your problem is not covered
- there, check both the FAQ file and the online FAQ Wizard. Also
- check for errors your syslog files and in the $prefix/logs/error
- file.
-
- Where syslog lives on your particular machine may vary. It may be
- in /var/log/maillog. It may also be in /var/log/syslog. On many
- machines, syslog files live in /adm/log/ instead of /var/log.
-
- If you encounter an error, send an error report to
- mailman-users@python.org. Include a description of what you're
- doing to cause the problem, and the relevant lines from your
- syslog. Also include information on your operating system, which
- version of Python you're using, and which version of Mailman
- you're installing.
-
-
-8. Common Problems
-
- Problem: All Mailman web pages give a 404 File not found error.
-
- Solution: Your web server has not been set up properly for handling
- Mailman's cgi commands. Make sure you've:
-
- 1) Configured the web server to give permissions to
- $prefix/cgi-bin
- 2) Restarted the web server properly.
-
- Consult your web server's documentation for instructions
- on how to do these things.
-
-
- Problem: All Mailman web pages give an "Internal Server Error".
-
- Solution: The likely problem is that you are using the wrong GID or
- UID for CGI scripts. Check your syslog. If you see, for
- example, a line like:
-
- Attempt to exec script with invalid gid 51, expected 99
-
- You need to reinstall Mailman, and specify $CGI_GID to be 51,
- as described in the installation instructions.
-
-
- Problem: I send mail to the list, and get back mail saying the
- list is not found!
-
- Solution: You probably didn't add the necessary aliases to the system
- alias database, given to you when you ran the newlist
- command. If you did add them, you likely did not update
- the alias database, or your system requires you to run
- newaliases explicitly. Refer to section 5 above for
- more information.
-
-
- Problem: I send mail to the list, and get back mail saying,
- "unknown mailer error".
-
- Solution: The likely problem is that you are using the wrong GID or
- UID for mail. Check your syslog. If you see, for
- example, a line like:
-
- Attempt to exec script with invalid gid 51, expected 99
-
- You need to reinstall Mailman, and specify $MAIL_GID to
- be 51, as described in the installation
- instructions. see notes on Postfix below, as by default
- it will create these problems on installation.
-
-
- Problem: I use Postfix for my MTA and the mail wrapper programs
- are logging complaints about the wrong GID.
-
- Solution: Create a separate aliases file for Postfix in its
- main.cf config file under the variable "alias_maps". Put
- the file somewhere in Mailman's home directory, or
- somewhere else where the user mailman has write access
- to it; *as user mailman* call Postfix's "postalias" on the
- alias file.
-
- % postalias <the alias file>
-
- Also as user mailman, run
-
- % python -c'import os; print os.getgid()'
-
- This should print out the group id that Mailman should
- be configured to expect when the mail wrapper programs
- are run. Call it "thegid". Rebuild Mailman with
-
- % ./configure --with-mail-gid=thegid
-
- See also the README.POSTFIX file for more information on
- connecting Postfix and Mailman.
-
-
- Problem: I send mail to the list, and get back mail saying,
- "sh: mailman not available for sendmail programs"
-
- Solution: Your system uses sendmail restricted shell (smrsh). You
- need to configure smrsh by creating a symbolic link from
- the mail wrapper ($prefix/mail/mailman) to the directory
- identifying executables allowed to run under smrsh.
-
- Some common names for this directory are
- /var/admin/sm.bin, /usr/admin/sm.bin or /etc/smrsh.
-
- Note that on Debian Linux, the system makes
- /usr/lib/sm.bin, which is wrong, you will need to create
- the directory /usr/admin/sm.bin and add the link there.
- Note further any aliases newaliases spits out will need
- to be adjusted to point to the secure link to the
- wrapper.
-
-
- Problem: I messed up when I called configure. How do I clean
- things up and re-install?
-
- Solution: % make clean
- % ./configure --with-the-right-options
- % make install
+For installation or upgrading instructions, please see the
+doc/mailman-install/index.html file.