Installation de Sympa
Sympa est une application de gestion de listes électroniques. Cette page présente un cas simple d'installation de base de cette application, sous Debian Squeeze, en utilisant le serveur de mails Postfix et le serveur web apache.
Voir aussi ConfigurationSympa
Installation et configuration de l'application
Sous Debian, sympa est fourni par le paquet sympa:
aptitude install sympa
Lors de la procédure d'installation, laisser à wwwconfig le soin de créer la base de données en lui donnant le mot de passe d'un utilisateur admin de mysql. A priori, on peut aussi peupler la base de données à l'aide de la commande sympa --upgrade après configuration de sympa, mais je n'ai pas testé.
La configuration de sympa se fait ensuite en lançant la commande sympa_wizard qui nous demande simplement de répondre aux questions. Les informations vont ensuite peupler les fichiers de configuration /etc/sympa/sympa.conf et /etc/sympa/wwsympa.conf.
sympa_wizard
La plupart des paramètres peuvent être utilisés par défaut. Quelques exemples de paramètres à préciser (attention: liste non exhaustive; ces exemples sont pour un serveur où on voudrait utiliser listes.domain.tld):
http_host http://listes.domaine.tld domain listes.domaine.tld listmaster listmaster@domaine.tld
On doit ensuite éditer /etc/sympa/sympa.conf pour désactiver le programme qui met à jour les alias de messagerie pour chaque liste, car nous utilisons une table de transports postfix (voir plus bas le chapitre à ce sujet). Après la directive sendmail (par exemple), on peut donc ajouter les lignes suivantes:
## On ne veut pas que sympa ajoute de nouveaux alias à chaque création de ## liste, car les alias sont gérés par une table de transport postfix. sendmail_aliases none
Penser à recharger la configuration de sympa après édition:
/etc/init.d/sympa restart
On peut vouloir augmenter la taille des messages. Comme ils sont stockés en base de données, on devra peut-être changer la taille maximal des paquets échangés avec mysql:
cat > /etc/mysql/conf.d/sympa.cnf <<<' [mysqld] max_allowed_packet = 20M ' /etc/init.d/mysql restart
On peut ensuite tester la taille effective des mails qu'on peut gérer grâce à la commande:
sympa --test_database_message_buffer
Configuration du serveur apache
Par défaut après installation du paquet sympa, apache est configuré via /etc/apache2/conf.d/sympa, pour permettre l'accès à sympa depuis l'url /wws.
On peut vouloir changer ça et créer un virtual host pour y accéder via http://listes.domaine.tld/sympa (en ajoutant une redirection de / vers /sympa à l'aide de mod_rewrite).
<VirtualHost *:80> ServerName listes.domaine.tld ServerAdmin webmaster@domaine.tld Alias /static-sympa /var/lib/sympa/static_content ScriptAlias /sympa /usr/lib/cgi-bin/sympa/wwsympa.fcgi RewriteEngine On RewriteRule ^/$ /sympa [R] LogLevel info ErrorLog /var/log/apache2/listes/error.log CustomLog /var/log/apache2/listes/access.log combined </VirtualHost>
Configuration de postfix
On crée deux services postfix : sympa et sympabounce :
cat >> /etc/postfix/master.cf <<<' # Services Pour sympa sympa unix - n n - - pipe flags=R user=sympa argv=/usr/lib/sympa/bin/queue ${recipient} sympabounce unix - n n - - pipe flags=R user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${recipient} '
On crée les transports Postfix vers chaque service :
cat > /etc/postfix/transport_regexp_sympa <<<' /^.*-owner\@listes\.domaine\.tld$/ sympabounce: /^.*\@listes\.domaine\.tld$/ sympa: '
On désigne ces transports et on configure Postfix pour qu'il n'envoie qu'un mail avec un seul destinataire à la fois à ces services et on déclare les transports :
cat >> /etc/postfix/main.cf <<<' # Tranport vers les services sympa* transport_maps = regexp:/etc/postfix/transport_regexp_sympa local_recipient_maps = regexp:/etc/postfix/transport_regexp_sympa # Un seul envoi/destinataire envoyé aux services sympa* à la fois sympa_destination_recipient_limit = 1 sympabounce_destination_recipient_limit = 1 '
On pensera aussi à ajouter listes.domaine.tld à mydestination dans main.cf:
mydestination = $myhostname, ..., listes.domaine.tld
Penser à recharger postfix
/etc/init.d/postfix reload
Configuration de la journalisation
On veut envoyer les logs de sympa vers /var/log/sympa.log. Si vous utilisez sysklogd, le paquet devrait avoir configuré ça pour vous. Si vous utilisez rsyslogd (utilisé par défaut sous debian), il y a un petit ajustement à faire, donné ci-dessous.
Sympa utilise par défaut la facility local1 (désignée par la directive syslog) dans sympa.conf.
On ne loggue plus les données envoyées par sympa via local1 dans le fichier syslog général :
sed -i -r 's/^(\*\.\*;)/\1local1,/' /etc/rsyslog.conf
Mais on s'assure que rsyslog envoie ces données vers /var/log/sympa.log.
# cat /etc/rsyslog.d/sympa.conf local1.* /var/log/sympa.log
La rotation des logs est normalement déjà assurée par /etc/logrotate.d/sympa, déjà installé par le paquet sympa :
# cat /etc/logrotate.d/sympa /var/log/sympa.log { missingok notifempty rotate 7 size=100k compress delaycompress postrotate invoke-rc.d --quiet sympa reload > /dev/null invoke-rc.d --quiet sysklogd reload > /dev/null || true invoke-rc.d --quiet rsyslog reload > /dev/null || true endscript }
On peut surveiller ces logs par logcheck si on le souhaite:
echo '/var/log/sympa.log' >> /etc/logcheck/logcheck.logfiles
Utilisation de Sympa
Pour utiliser sympa, il vous reste à créer l'utilisateur que vous avez désigné comme listmaster, c'est à dire, dans notre cas, 'listmaster@domaine.tld.
Rendez-vous à l'adresse que vous avez paramétrée (ici http://listes.domaine.tld/sympa), et suivez le lien en haut à droite « première connexion ? ». Vous pourrez y saisir votre adresse email, c'est à dire listmaster@domaine.tld, et vous recevrez par mail l'adresse d'une page générée par sympa pour y préciser votre mot de passe et quelques informations.
Vous pouvez maintenant créer une liste de diffusion et l'essayer pour vérifier que toute votre configuration fonctionne comme prévu.