137 lines
5.6 KiB
Text
137 lines
5.6 KiB
Text
|
The following notes will guide you through the installation of ezmlm-web:
|
||
|
|
||
|
OVERVIEW:
|
||
|
0 - important notes
|
||
|
1 - get it
|
||
|
2 - install executable
|
||
|
3 - configuration file
|
||
|
4 - compile cgi wrapper
|
||
|
5 - install cgi wrapper
|
||
|
6 - (optional) configure access control (http authentication)
|
||
|
7 - final test
|
||
|
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
0. IMPORTANT: you need the perl module Mail::Ezmlm and others to use
|
||
|
ezmlm-web! The file README contains the complete list of necessary
|
||
|
modules.
|
||
|
|
||
|
|
||
|
1. Get ezmlm-web and extract the archive:
|
||
|
tar xzf ezmlm-web-2.x.tar.gz
|
||
|
|
||
|
|
||
|
2. Copy ezmlm-web.cgi to some publically readable directory. It does not
|
||
|
have to be in a path accessible to your web server, but any user with a
|
||
|
mailing list must be able to run it (Check the read and execute rights
|
||
|
on both the file and directory). We put our copy in "/usr/local/bin".
|
||
|
|
||
|
At the top of ezmlm-web.cgi you can will probably have to change the
|
||
|
$ENV{'PATH'} variable. Be careful about what you set as the path. Too
|
||
|
much is a security risk and too little will cause the script to
|
||
|
malfunction. Version 2.0 requires that the following programs be
|
||
|
accessible in your path: mv, rm
|
||
|
|
||
|
|
||
|
3. Edit the ezmlmwebrc file and alter the variables to suit your
|
||
|
particular system.
|
||
|
|
||
|
Be careful about the $LIST_DIR variable. This script assumes that all
|
||
|
users store their mailing lists in the same sub directory of the home
|
||
|
directory (eg ~/lists). You can override this for an individual user
|
||
|
by recompiling the C wrapper to call ezmlm-web.cgi with a -d option.
|
||
|
|
||
|
Other configurable options are documented in the ezmlmwebrc file
|
||
|
itself. I have tried to keep the amount of information that you need to
|
||
|
supply to a minimum and also make reasonable guesses about default
|
||
|
values.
|
||
|
|
||
|
The directory containing ezmlm-web's language files should be something
|
||
|
like '/usr/local/share/ezmlm-web/lang':
|
||
|
mkdir -p /usr/local/share/ezmlm-web
|
||
|
cp -r lang /usr/local/share/ezmlm-web
|
||
|
You can change this default location in the ezmlmwebrc file.
|
||
|
|
||
|
Finally, copy the ezmlmwebrc file to one of
|
||
|
the following places:
|
||
|
- /etc/ezmlm
|
||
|
- the home directory of the user that runs ezmlm-web.cgi
|
||
|
- the directory, that contains your ezmlm-web.cgi file
|
||
|
|
||
|
|
||
|
4. Edit the index.c file and change the path to the path of your copy
|
||
|
of ezmlm-web.cgi. Then compile this file. You can do this by issuing
|
||
|
this command:
|
||
|
gcc -o index.cgi index.c
|
||
|
|
||
|
|
||
|
5. For every user/virtual host that needs to manage mailing lists, you
|
||
|
need to create a SUID (user not root!!) copy of index.cgi (see
|
||
|
chmod(1) for details). These need to reside somewhere accessible by
|
||
|
the web server. I suggest that you put them in a sub directory (see
|
||
|
about security) of each user/virtual host's home directory (eg
|
||
|
/home/luser/public_html/ezmlm for Apache on Redhat).
|
||
|
|
||
|
The copies don't actually have to be called index.cgi, but it is nice
|
||
|
for web servers that can resolve a cgi script as an index page (see the
|
||
|
srm.conf file in Apache). It is important to make sure that whichever
|
||
|
directory you choose to put them can i: Execute CGI Scripts and ii: Be
|
||
|
access controlled (here I mean both web and user access) by some method
|
||
|
(eg .htaccess, access.conf for Apache).
|
||
|
|
||
|
You should also copy the stylesheet file (css/default.css) to a location
|
||
|
of your choice. Now you may have to change the "HTML_CSS_FILE" setting
|
||
|
in your ezmlmwebrc file.
|
||
|
|
||
|
Optional: it would be nice if you could download the small picture
|
||
|
whose URL you can find in the ezmlmwebrc file as "HELP_ICON_URL".
|
||
|
Then you should change this URL.
|
||
|
This helps to reduce the load on our server.
|
||
|
|
||
|
|
||
|
6. Install some method of securing access to the page. The following
|
||
|
information is applicable to Apache web servers ... Detailed
|
||
|
information on user authentication can be obtained from the Apache
|
||
|
documentation (http://www.apache.org) and ApacheWeek
|
||
|
(http://www.apacheweek.com/features/userauth)
|
||
|
|
||
|
6.1 Ensure that your Apache setup will allow .htaccess file to control
|
||
|
access in the directory that contains. This is controlled by the
|
||
|
AllowOverride tag in access.conf. (Also ensure you have the
|
||
|
necessary Apache modules installed)
|
||
|
|
||
|
6.2 Create a htpasswd file. This is done using the htpasswd command that
|
||
|
comes with Apache. Its command line syntax is;
|
||
|
htpasswd [-c] passwordfile username
|
||
|
|
||
|
You need to put the passwordfile somewhere that is not accessible by
|
||
|
people through the web, and create an entry for each user you want
|
||
|
to have access ... See the ApacheWeek article for more details.
|
||
|
|
||
|
6.3 Create a .htaccess file in the directory that contains index.cgi.
|
||
|
Note that using Apache's built in access control, you can only control
|
||
|
access to directories, not individual files, hence the need for a
|
||
|
sub-directory in step 5.
|
||
|
|
||
|
The format of the .htaccess file should be along the lines of this;
|
||
|
|
||
|
AuthName EZ Mailing List Manager
|
||
|
AuthType Basic
|
||
|
AuthUserFile /path/to/passwordfile
|
||
|
require valid-user # or require user username
|
||
|
|
||
|
Again, see the ApacheWeek article for details.
|
||
|
|
||
|
|
||
|
7. Test the installation through the web. You should be asked for a
|
||
|
username and password (supplied in 6.2) and then be presented with a
|
||
|
screen entitled "EZ Mailing List Manger". You can then try to create and
|
||
|
edit mailing lists ... Have Fun :)
|
||
|
|
||
|
|
||
|
If you have any problems, then you can:
|
||
|
- take a look at https://systemausfall.org/toolforge/ezmlm-web
|
||
|
- send me an email: ezmlm-web@sumpfralle.de
|