Sympa nécessite au préalable un serveur de base de donnée correctement installé (Mysql par exemple, mais aussi Postgresql, Oracle ou SQlite), un serveur de mails (Postfix par exemple) et un serveur Web (Apache).
Installation
Dans un premier temps, il est important de créer un utilisateur Unix spécifique que l’on nommera "sympa" :
- sudo adduser sympa
Nous devons voir apparaitre à l’écran :
- Ajout de l\'utilisateur « sympa »...
- Ajout du nouveau groupe « sympa » (1003)...
- Ajout du nouvel utilisateur « sympa » (1003) avec le groupe « sympa »...
- Création du répertoire personnel « /home/sympa »...
- Copie des fichiers depuis « /etc/skel »...
Nous devons répondre au moins aux questions posées suivantes (les autres restant facultatives) :
- Entrez le nouveau mot de passe UNIX
- Retapez le nouveau mot de passe UNIX
Ensuite nous allons installer, ou du moins tester s’ils le sont déjà, une bonne partie des dépendances de sympa. Du fait qu’il soit écrit en perl, le serveur a de très nombreuses dépendances car les librairies de ce language sont fragmentées dans de multiples paquest. On lance alors cette commande :
- sudo apt-get install build-essential openssl gettext mhonarc libmysqlclient15-dev libxml2 libxml2-dev perl perl-modules libmailtools-perl libclass-dbi-perl libmime-base32-perl libmime-perl libmime-charset-perl libwww-perl libhtml-parser-perl libhtml-tagset-perl libcrypt-ciphersaber-perl libfcgi-perl libdigest-perl libdigest-md5-file-perl libconvert-asn1-perl libnet-ldap-perl libnet-ldap-server-perl libdb-file-lock-perl libio-stringy-perl libnet-ssleay-perl libio-socket-ssl-perl libclass-dbi-pg-perl libclass-dbi-mysql-perl libclass-dbi-sqlite-perl libclass-dbi-loader-perl libunicode-map8-perl libunicode-string-perl libxml-libxml-perl libio-all-perl libhtml-format-perl libhtml-parser-perl libhtml-tree-perl libdbd-pg-perl libdbd-mysql-perl libdbi-perl libterm-progressbar-perl libxml-perl libxml-libxml-perl libhtml-stripscripts-parser-perl libmime-lite-perl libintl-perl libfile-copy-recursive-perl libarchive-zip-perl libmime-encwords-perl libnet-netmask-perl libtemplate-perl libunicode-linebreak-perl libmail-dkim-perl libsoap-lite-perl libmime-lite-html-perl
Ceci fait, nous pouvons ensuite passer à l’étape de récupération du logiciel :
- # On va dans notre home
- cd ~
- # On récupère de la dernière archive stable (vérifiez que le lien est correct sur le site http://www.sympa.org
- wget http://www.sympa.org/distribution/sympa-6.1.17.tar.gz
- # On décompresse l'archive
- tar -xvzf sympa-6.1.17.tar.gz
- # On change de répertoire
- cd sympa-6.1.17/
Nous pouvons ensuite passer à l’étape de compilation du serveur :
- # La phase de configuration en précisant trois options spécifiques à Debian :
- # --with-initdir qui correspond à l'emplacement des fichier d'init du système
- # --with-lockdir qui correspond à l'emplacement des futurs fichiers lock
- # --with-newaliases_arg donne les arguments passés à la commande newaliases.
- # Comme le serveur peut servir à autre chose que pour sympa, on lui passe le fichier de base de donnée de mails à mettre à jour
- ./configure --with-initdir=/etc/init.d/ --with-lockdir=/var/lock --with-newaliases_arg="-oA/etc/mail/sympa_aliases"
- # Puis on peut compiler
- make
- # Et enfin installer le tout
- sudo make install
On va créer le fichier /etc/mail/sympa_aliases
où seront injectés les alias pour les listes :
- mkdir -p /etc/mail
- nano /etc/mail/sympa_aliases
On y ajoute les lignes suivantes :
- sympa: "| /home/sympa/bin/queue sympa@lists.domaine.example"
- listmaster: "| /home/sympa/bin/queue listmaster@lists.domaine.example"
- bounce+*: "| /home/sympa/bin/bouncequeue sympa@lists.domaine.example"
- abuse-feedback-report: "| /home/sympa/bin/bouncequeue sympa@lists.domaine.example"
- sympa-request: listmaster@lists.domaine.example
- sympa-owner: listmaster@lists.domaine.example
On donne les bons droits d’accès et on crée la base de donnée de mails :
- newaliases -oA/etc/mail/sympa_aliases
- chown -Rvf sympa:sympa /etc/mail/
Avant toute autre chose nous devons vérifier que l’ensemble des librairies perl nécessaires sont correctement installées. Sympa fourni un script pour cela qui vérifie et si besoin installe ou mets à jour les librairies nécessaires. Il suffit de lancer la commande :
- sudo /home/sympa/bin/sympa_wizard.pl --check
Si les librairies ne sont pas présentes, Sympa utilisera CPAN pour les installer, dans notre cas deux librairies n’étaient pas disponibles ou à jour dans les dépots Débian :
-
Mhonarc
; -
Unicode-LineBreak
;
Nous n’installons que les librairies nécessaires (celles par défaut).
Si cette étape s’est correctement passée, nous pouvons passer à la configuration.
Configuration
Il suffit cette fois-ci de lancer la même commande sans le paramètre --check
(Les valeurs par défaut sont celles inscrites entre crochets) :
- sudo /home/sympa/bin/sympa_wizard.pl
A ce moment là, beaucoup de questions vous seront posées.
- home: Directory containing mailing lists subdirectories [/home/sympa/list_data]
- # Laissez la valeur par défaut, on a créé un utilisateur sympa pour cela.
- arc_path: Where to store HTML archives [/home/sympa/arc]
- # Idem, on laisse la valeur par défaut.
- http_host: URL to a virtual host. [http://domain.example]
- # Mettez ici l'url par laquelle vous souhaitez accéder au serveur de mailing lists, dans notre exemple, on utilisera "http://lists.domaine.example"
- static_content_path: The directory where Sympa stores static contents (CSS, members pictures, documentation) directly delivered by Apache [/home/sympa/static_content]
- # Laissez la valeur par défaut.
- static_content_url: The URL mapped with the static_content_path directory defined above [/static-sympa]
- # Laissez la valeur par défaut.
- syslog: The syslog facility for sympa [LOCAL1]
- # Laissez la valeur par défaut.
- log_facility: The syslog facility for wwsympa, archived and bounced [LOCAL1]
- # Laissez la valeur par défaut.
- domain: Main robot hostname [domain.example]
- # Le nom d'hote du robot principal, on mettra dans notre exemple "lists.domaine.example"
- Sympa will associate listmaster privileges to these email addresses (mail and web interfaces). Some error reports may also be sent to these addresses.
- listmaster: Listmasters email list comma separated [your_email_address@domain.example]
- # Mettre ici l'adresse email du Listmasters à savoir l'utilisateur qui gère le serveur, dans notre exemple on mettra "postmaster@domaine.example". Mettez une adresse qui existe réellement.
- email: Local part of sympa email adresse [sympa]
- # Laissez la valeur par défaut.
- create_list: Who is able to create lists [public_listmaster]
- # Laissez la valeur par défaut.
- cache_list_config: Use of binary version of the list config structure on disk: none | binary_file [none]
- # Laissez la valeur par défaut.
- max_size: The default maximum size (in bytes) for messages (can be re-defined for each list) [5242880]
- # Laissez la valeur par défaut, à moins que vous souhaitiez autoriser des messages de plus de 5242880 bytes.
- use_blacklist: comma separated list of operations for which blacklist filter is applied [send,create_list]
- # Laissez la valeur par défaut.
- lang: Default lang (ca | cs | de | el | es | et_EE | en_US | fr | fi | hu | it | ja_JP | ko | nl | nb_NO | oc | pl | pt_BR | ru | sv | tr | vi | zh_CN | zh_TW) [en_US] :
- # Choisissez dans la liste la langue par défaut du serveur. Dans notre exemple, on mettra "fr"
- supported_lang: Supported languages [ca,cs,de,el,es,et_EE,en_US,fr,fi,hu,it,ja_JP,ko,nl,nb_NO,oc,pl,pt_BR,ru,sv,tr,vi,zh_CN,zh_TW]
- # La liste des langues supportées, on va laisser toutes les langues, donc la valeur par défaut.
- bounce_warn_rate: Bouncing email rate for warn list owner [30]
- # Laissez la valeur par défaut.
- sendmail: Path to the MTA (sendmail, postfix, exim or qmail) [/usr/sbin/sendmail]
- # Laissez la valeur par défaut.
- antivirus_path: Path to the antivirus scanner engine [] :
- # Laissez la valeur par défaut.
- antivirus_args: Antivirus pluggin command argument []
- # Laissez la valeur par défaut.
- mhonarc: Path to MhOnarc mail2html pluggin [/usr/bin/mhonarc]
- # Laissez la valeur par défaut.
- openssl: Path to OpenSSL []
- # Laissez la valeur par défaut.
- capath: The directory path use by OpenSSL for trusted CA certificates []
- # Laissez la valeur par défaut.
- cafile: This parameter sets the all-in-one file where you can assemble the Certificates of Certification Authorities (CA) [/home/sympa/default/ca-bundle.crt]
- # Laissez la valeur par défaut.
- key_passwd: Password used to crypt lists private keys []
- # Laissez la valeur par défaut.
- db_type: Database type (mysql | Pg | Oracle | Sybase | SQLite) [mysql] :
- # Si vous souhaitez utiliser mysql (notre cas), laissez la valeur par défaut, sinon choisissez votre type de base de donnée.
- db_name: Name of the database [sympa]
- # Nom de la base de donnée, laissez la valeur par défaut ou indiquez une base existante par exemple.
- db_host: The host hosting your sympa database [localhost]
- # Si le serveur de base de donnée est sur la même machine que le serveur de Mailing lists, laissez la valeur par défaut.
- db_user: Database user for connexion [user_name]
- # Nom d'utilisateur (Mysql ou autre) qui aura accès à la base de donnée. Dans notre exemple on utilisera "sympa".
- db_passwd: Database password (associated to the db_user) [user_password]
- # Le mot de passe de cet utilisateur de la base de donnée. Dans notre exemple, on utilisera "sympa_pass"
- use_fast_cgi: Is fast_cgi module for Apache (or Roxen) installed (0 | 1) [1]
- # Laissez la valeur par défaut.
- wwsympa_url: Sympa's main page URL [http://host.domain.example/sympa]
- # L'adresse à laquelle on accède au serveur. Dans notre exemple on utilisera "http://lists.domaine.example"
- title: Title of main web page [Mailing lists service]
- # Titre qui sera affiché sur le serveur. Laissez la valeur par défaut.
- default_home: Main page type (lists | home) [home]
- # Laissez la valeur par défaut.
- default_shared_quota: Default disk quota for shared repository []
- # Laissez la valeur par défaut.
- spam status : ham, spam or unsure. This parameter replace antispam_tag_header_name, antispam_tag_header_spam_regexp and antispam_tag_header_ham_regexp. [x-spam-status]
- # Laissez la valeur par défaut.
- antispam_tag_header_name: If a spam filter (like spamassassin or j-chkmail) add a smtp headers to tag spams, name of this header (example X-Spam-Status) [X-Spam-Status]
- # Laissez la valeur par défaut.
- antispam_tag_header_spam_regexp: The regexp applied on this header to verify message is a spam (example \s*Yes) [^\s*Yes]
- # Laissez la valeur par défaut.
- antispam_tag_header_ham_regexp: The regexp applied on this header to verify message is NOT a spam (example \s*No) [^\s*No]
- # Laissez la valeur par défaut.
Les deux fichiers de configuration /etc/sympa.conf
et /etc/wwsympa.conf
sont alors mis à jour. Vous pourrez ensuite les éditer manuellement.
Création de la base de donnée
Il est maintenant nécessaire de créer la base de donnée. On va utiliser les mêmes informations que fournies lors de la configuration précedente soit :
- On utilise un serveur MySQL ;
- La base de donnée s’appelle
sympa
; - Le nom d’utilisateur de la base de donnée est
sympa
; - Le mot de passe de cet utilisateur est
sympa_pass
;
On va se logguer sur le serveur MySQL en root :
- mysql -u root -p
Le mot de passe doit vous avoir été demandé et vous accédez à l’interface MySQL en ligne de commande.
On va ensuite créer la base de donnée et donner les droits au nouvel utilisateur sympa qui sera créé automatiquement :
Modification du script d’init de sympa
Sympa installe son script d’initialisation tout seul dans le répertoire adéquat /etc/init.d/
mais pour que ce script fonctionne correctement pour Debian sans possible problème d’intéraction malheureuse avec d’autres, il est nécessaire de lui ajouter quelques ligne en entête du fichier. On l’ouvre donc :
- nano /etc/init.d/sympa
et on ajoute les lignes suivantes en haut du fichier après la ligne #!/bin/sh
:
- ### BEGIN INIT INFO
- # Provides: sympa
- # Required-Start: $syslog $remote_fs $network
- # Required-Stop: $syslog $remote_fs
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Sympa Mailing lists management
- # Description: Sympa is a powerfull mailing lists management system
- ### END INIT INFO
Puis on réinitialise ce script correctement :
- sudo update-rc.d sympa defaults
Lancement du serveur de mailing list
Finalement nous pouvons lancer le serveur sympa comme ceci :
- sudo /etc/init.d/sympa start
Le script sympa.pl
alors lancé créera les tables nécessaires à la base de donnée.
Et nous devrions voir les lignes suivantes :
- Starting Sympa subsystem:
- Starting module sympa.pl: success
- Starting module bulk.pl: success
- Starting module archived.pl: success
- Starting module bounced.pl: success
- Starting module task_manager.pl: success
On peut désormais passer à la configuration d’Apache pour Sympa