Inhaltsverzeichnis

!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!

Diese Seite wurde zuletzt am 9. Juli 2014 um 10:49 Uhr geändert.

ezmlm-idx

In diesem speziellen Fall habe ich mich für eine Mailing-Liste entschieden,

  1. der man nur beitreten kann, wenn ein Moderator dieses zulässt (-s),
  2. die nur E-Mails von ihr bekannten E-Mail-Absendern annimmt (-u),
  3. auf dessen Archiv nur bekannte E-Mail-Absender zugreifen können (-g),
  4. die für den Archiv-Zugriff per ezmlm-cgi indiziert ist (-i),
  5. deren Konfiguration in einer MySQL-Datenbank abgelegt wird (-6) und
  6. die einen Eigentümer kennt (-5)

MySQL-Datenbank und -Benutzer anlegen

 mysql --host=<HOST> --user=root --password -e "CREATE DATABASE `ezmlm`; \
 CREATE USER 'ezmlm'@'<FROM_HOST>' IDENTIFIED BY '<PASSWORD>'; \
 GRANT USAGE ON * . * TO 'ezmlm'@'<FROM_HOST>' IDENTIFIED BY '<PASSWORD>' \
 WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; \
 GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP ON `ezmlm` .  * TO 'ezmlm'@'<FROM_HOST>';"

platzhalter

kompilieren

 cd /usr/local/src
 wget http://www.ezmlm.org/archive/7.1.1/ezmlm-idx-7.1.1.tar.gz
 tar xvzf ezmlm-idx-7.1.1.tar.gz
 cd ezmlm-idx-7.1.1/lang
 ln -s en_US default
 cd ..
 make
 make man
 make mysql
 ./ezmlm-test -s mysql -h <HOST> -u ezmlm -t ezmlm -d ezmlm -p <PASSWORD> 
 make install

platzhalter

Mailing-Liste anlegen

 /usr/local/bin/ezmlm/ezmlm-make -5 patrick@neumannsland.de -g -i -s -u -6 mysql:<HOST>>3306:ezmlm:<PASSWORD>>ezmlm:ezmlm \
 /home/vpopmail/domains/<DOMAIN>/<MAILINGLISTNAME> /home/vpopmail/domains/<DOMAIN>/.qmail-<MAILINGLISTNAME> <MAILINGLISTNAME> <DOMAIN>
 /usr/local/bin/ezmlm/ezmlm-sub /home/vpopmail/domains/<DOMAIN>/<MAILINGLISTNAME> mod <E-MAIL-ADRESSE>
 chown -h vpopmail:vchkpw /home/vpopmail/domains/<DOMAIN>/.qmail-<MAILINGLISTNAME>*
 chown -R vpopmail:vchkpw /home/vpopmail/domains/<DOMAIN>/<MAILINGLISTNAME>

platzhalter

ezmlm-cgi

Da die Mailing-Liste an sich schon recht „verschlossen“ ist, ist ein Zugriff auf das „Web-Archiv“ auch nur per Benutzername und Password möglich!

Proxy-Konfiguration (nginx) ggf. anpassen

/etc/nginx/sites-available/ezmlm-cgi könnte auf dem Host wie folgt ausschauen:

 server {
   listen <IP-ADRESSE-DES-HOSTS>>80;
   server_name <EZMLM-DOMAIN>;
   location / {
     **proxy_set_header Host $http_host;**
     proxy_set_header X-Forwarded-Host $host;
     proxy_set_header X-Forwarded-Server $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass http://<IP-ADRESSE-DES-GASTES>>80;
   }
 }

platzhalter (Wobei das Hauptaugenmerk auf „proxy_set_header Host $http_host;“ liegt, da ansonsten die von ezmlm-cgi generierte Links auf die interne IP-Adresse des Gastes verweisen!)

Debian-Pakete installieren

 aptitude install lighttpd

(Wenn ich nur cgi haben möchte, entscheide ich persönlich mich immer ganz gerne für lighttpd.)

/etc/lighttpd/conf-available/99-ezmlm.conf

 cat <<EOF > /etc/etc/lighttpd/conf-available/99-ezmlm.conf
 server.modules  += ( "mod_auth", "mod_cgi" )
 auth.backend = "plain"
 auth.backend.plain.userfile = "/etc/lighttpd/users"
 auth.require = ( "/" => ( "method" => "digest", "realm" => "ezmlm archive", "require" => "user=<USER>" ) )
 alias.url += ( "/" => "/usr/lib/cgi-bin/" )
 index-file.names += ( "ezmlm-cgi" )
 $HTTP[["url"]] =~ "^/" { cgi.assign = ( "ezmlm-cgi" => "" ) }
 EOF

platzhalter

/etc/lighttpd/users

 echo "<USER>><PASSWORD>" > /etc/lighttpd/users

platzhalter

hinzugefügte lighttpd-Konfiguration aktivieren

 lighttpd-enable-mod ezmlm

Konfiguration übernehmen

 /etc/init.d/lighttpd force-reload