Ejabberd
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