Ejabberd

De DokuWikiExperience.

Ejabberd est un serveur XMPP très puissant mais peu sexy (erlang). Erlang possède une BDD interne appellé mnesia qui est paraît-il très bien mais (trop) peu de personnes savent l'administrer. Nous allons donc installer ejabberd, l'authentification se fera via LDAP et le stockage des informations dans MySQL (vcard, roster, message offline, ...).

Sommaire

Install

apt-get install ejabberd

Configuration

Authentification LDAP

MySQL

Par défaut il n'y a pas de connecteur mysql fourni pour cela il faut récuperer en SVN les sources du driver mysql.

 svn co https://svn.process-one.net/ejabberd-modules/mysql trunk mysql

Les compiler

cd mysql/mysql/trunk && ./build.sh

Puis les copier dans ejabberd

cp ebin/* /usr/lib/ejabberd/ebin/

Une fois cela terminer il faut créer la bdd et le user associé phpmyadmin est sympa non? bon sinon :

CREATE USER 'ejabberd'@'localhost' IDENTIFIED BY '****************';
GRANT USAGE ON * . * TO 'ejabberd'@'localhost' IDENTIFIED BY '****************';
CREATE DATABASE IF NOT EXISTS `ejabberd` ;
GRANT ALL PRIVILEGES ON `ejabberd` . * TO 'ejabberd'@'localhost';

Remplacez localhost par l'ip de votre serveur client et les **** par le mot de passe

Ensuite insérer le schéma des tables

gunzip /usr/share/doc/ejabberd/examples/mysql.sql.gz
sed -i.orig '/^--/d' /usr/share/doc/ejabberd/examples/mysql.sql
mysql -Dejabberd -uejabberd -p < /usr/share/doc/ejabberd/examples/mysql.sql

Le terrain est prêt nous pouvons configurer ejabberd à proprement dit. Éditer le fichier ejabberd.cfg Ajouter ceci dans la partie DATABASE SETUP:

{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "********"}}.

Ensuite il faut modifier les modules qui prennent en charge les différentes parties de jabber pour utiliser la bdd plutôt que celle intégré. Pour aller plus vite voici la commande magique :

sed -i.bck -e 's/{mod_last,/{mod_last_odbc,/g' -e 's/{mod_offline,/{mod_offline_odbc,/g' -e 's/{mod_private,/{mod_private_odbc,/g' \
-e 's/{mod_roster,/{mod_roster_odbc,/g' -e 's/{mod_vcard,/{mod_vcard_odbc,/g' /etc/ejabberd/ejabberd.cfg

Puis reloader ejabberd

/etc/init.d/ejabberd restart
Outils personnels