« Configuration avancée de ejabberd » : différence entre les versions
m (utilisation du nouveau modèle Tutoriels_serveur) |
m (→Connexion à une base de données : Je pense que le * le virtual host 'vhost 2' utilise une base mysql qui se trouve sur le host 'host 2' (et non sur le vhost1... )) |
||
(7 versions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
{{Modèle:TODO}} | {{Modèle:TODO}} | ||
'' | == Utilisation de MySQL == | ||
Pour pouvoir connecter ejabberd à une base MySQL, il faut ajouter un driver, qui n'est pas fourni par défaut. | |||
Celui-ci est disponible en tapant : | |||
svn co https://svn.process-one.net/ejabberd-modules/mysql trunk mysql | |||
Il faut ensuite mettre les fichers du driver avec les sources d'ejabberd et compiler le module | |||
make | |||
Copiez ensuite les fichiers mysql*.beam à l'endroit où sont stockés tous les .beam de votre serveur. | |||
* Sur Debian : /usr/lib/erlang/lib/ejabberd-1.1.2/ebin | |||
La base de données nécessaire à ejabberd doit être crée dans votre base MySQL. Un script sql est fourni dans les sources d'ejabberd (<repertoire de sources ejabberd>/odbc/mysql.sql). | |||
Dans le fichier de configuration, il faut ensuite ajouter une directive indiquant comment se connecter à la base MySQL : | |||
{odbc_server, {mysql, "<host>", | |||
"<base>", "<user>", "<password>"}}. | |||
Ajoutez enfin 'odbc' aux méthodes d'authentification (nécessaire pour que la connexion odbc soit démarrée au lancement du serveur) | |||
{auth_method, [internal,odbc]}. | |||
=== Liens externes === | |||
* [https://forge.process-one.net/browse/ejabberd-modules/mysql Driver MySQL sur ejabberd-modules] | |||
== Virtual Hosting == | |||
=== Activation du virtual hosting === | |||
Il est assez simple de faire du virtual hosting avec ejabberd. | |||
Chaque vhost partage les mêmes modules, et une partie de la configuration est commune. Cependant, il faut réaliser les actions suivantes : | |||
* s'assurer que l'on résoud bien les hosts que l'on va configurer dans ejabberd | |||
* modifier le fichier de configuration d'ejabberd : ejabberd.cfg | |||
** ajouter la liste des hosts : | |||
{hosts, ["<vhost 1>,"<vhost 2>"]}. | |||
=== Paramètrage différencié par virtual host === | |||
==== Méthode d'authentification ==== | |||
On peut spécifier des méthodes d'authentification différentes pour chaque virtual host : | |||
{host_config, "<vhost 1>", [{auth_method, [internal,odbc]}]}. | |||
{host_config, "<vhost 2>", [{auth_method, [ldap,internal]}]}. | |||
Dans cet exemple : | |||
* le virtual host 'vhost 1' s'authentifie sur la base interne d'ejabberd (mnesia) puis, sinon, sur odbc | |||
* le virtual host 'vhost 2' s'authentifie sur un annuaire LDAP seulement | |||
==== Connexion à une base de données ==== | |||
Il est possible qu'un ou plusieurs virtual hosts utilisent une connexion à une base de données. Il n'est pas possible de spécifier la même base pour plusieurs virtual hosts : | |||
{host_config, "<vhost 1>", [{odbc_server, {mysql, "<vhost 1>", | |||
"ejabberd", "ejabberd", "ejabberd"}}]}. | |||
{host_config, "<vhost 2>", [{odbc_server, {mysql, "<vhost 2>", "ejabberd2 | |||
", "ejabberd", "ejabberd"}}]}. | |||
Dans cet exemple : | |||
* le virtual host 'vhost 1' utilise une base mysql qui se trouve sur le host 'host 1' | |||
* le virtual host 'vhost 2' utilise une base mysql qui se trouve sur le host 'host 2' | |||
== Configurer l'archivage des conférences (mod_muc_log) == | |||
Toujours dans <tt>ejabberd.cfg</tt>, dans la liste de modules activés : | |||
Remplacer | |||
% {mod_muc_log, []}, | |||
Par | |||
{mod_muc_log, [{allow_room_log, true}, | |||
{access_log, muc}, | |||
{outdir, "/var/www/muclogs"}, | |||
{dirtype, plain}, | |||
{timezone, local}, | |||
{top_link, {"http://www.monserveurjabber.tld", "logs de mon serveur jabber"}}, | |||
{cssfile, false}]}, | |||
Les logs seront écrit dans le dossier /var/www/muclogs. Il faut donc s'assurer que ejabberd a bien les droits d'écriture dans ce dossier. | |||
Créons ce dossier : | |||
# mkdir -p /var/www/muclogs | |||
Changeons-en le propriétaire pour que ce soit ejabberd | |||
# chown ejabberd:ejabberd /var/www/muclogs | |||
Changeons les droits pour que ejabberd puisse y écrire : | |||
# chmod 755 /var/www/muclogs | |||
[[Catégorie:Tutoriel]] | [[Catégorie:Tutoriel]] |
Dernière version du 27 octobre 2008 à 15:21
Vous pouvez également suggérer des améliorations sur sa page de discussion.
Où en venant en discuter sur le salon dédié : wiki@chat.jabberfr.org (client web) !
Utilisation de MySQL
Pour pouvoir connecter ejabberd à une base MySQL, il faut ajouter un driver, qui n'est pas fourni par défaut. Celui-ci est disponible en tapant :
svn co https://svn.process-one.net/ejabberd-modules/mysql trunk mysql
Il faut ensuite mettre les fichers du driver avec les sources d'ejabberd et compiler le module
make
Copiez ensuite les fichiers mysql*.beam à l'endroit où sont stockés tous les .beam de votre serveur.
- Sur Debian : /usr/lib/erlang/lib/ejabberd-1.1.2/ebin
La base de données nécessaire à ejabberd doit être crée dans votre base MySQL. Un script sql est fourni dans les sources d'ejabberd (<repertoire de sources ejabberd>/odbc/mysql.sql).
Dans le fichier de configuration, il faut ensuite ajouter une directive indiquant comment se connecter à la base MySQL :
{odbc_server, {mysql, "<host>", "<base>", "<user>", "<password>"}}.
Ajoutez enfin 'odbc' aux méthodes d'authentification (nécessaire pour que la connexion odbc soit démarrée au lancement du serveur)
{auth_method, [internal,odbc]}.
Liens externes
Virtual Hosting
Activation du virtual hosting
Il est assez simple de faire du virtual hosting avec ejabberd. Chaque vhost partage les mêmes modules, et une partie de la configuration est commune. Cependant, il faut réaliser les actions suivantes :
- s'assurer que l'on résoud bien les hosts que l'on va configurer dans ejabberd
- modifier le fichier de configuration d'ejabberd : ejabberd.cfg
- ajouter la liste des hosts :
{hosts, ["<vhost 1>,"<vhost 2>"]}.
Paramètrage différencié par virtual host
Méthode d'authentification
On peut spécifier des méthodes d'authentification différentes pour chaque virtual host :
{host_config, "<vhost 1>", [{auth_method, [internal,odbc]}]}. {host_config, "<vhost 2>", [{auth_method, [ldap,internal]}]}.
Dans cet exemple :
- le virtual host 'vhost 1' s'authentifie sur la base interne d'ejabberd (mnesia) puis, sinon, sur odbc
- le virtual host 'vhost 2' s'authentifie sur un annuaire LDAP seulement
Connexion à une base de données
Il est possible qu'un ou plusieurs virtual hosts utilisent une connexion à une base de données. Il n'est pas possible de spécifier la même base pour plusieurs virtual hosts :
{host_config, "<vhost 1>", [{odbc_server, {mysql, "<vhost 1>", "ejabberd", "ejabberd", "ejabberd"}}]}. {host_config, "<vhost 2>", [{odbc_server, {mysql, "<vhost 2>", "ejabberd2 ", "ejabberd", "ejabberd"}}]}.
Dans cet exemple :
- le virtual host 'vhost 1' utilise une base mysql qui se trouve sur le host 'host 1'
- le virtual host 'vhost 2' utilise une base mysql qui se trouve sur le host 'host 2'
Configurer l'archivage des conférences (mod_muc_log)
Toujours dans ejabberd.cfg, dans la liste de modules activés :
Remplacer
% {mod_muc_log, []},
Par
{mod_muc_log, [{allow_room_log, true}, {access_log, muc}, {outdir, "/var/www/muclogs"}, {dirtype, plain}, {timezone, local}, {top_link, {"http://www.monserveurjabber.tld", "logs de mon serveur jabber"}}, {cssfile, false}]},
Les logs seront écrit dans le dossier /var/www/muclogs. Il faut donc s'assurer que ejabberd a bien les droits d'écriture dans ce dossier.
Créons ce dossier :
# mkdir -p /var/www/muclogs
Changeons-en le propriétaire pour que ce soit ejabberd
# chown ejabberd:ejabberd /var/www/muclogs
Changeons les droits pour que ejabberd puisse y écrire :
# chmod 755 /var/www/muclogs