Installation de Sympa

De ClissXXI.

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

Sommaire

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.

Outils personnels