Die Howto-Serie geht immer davon aus, dass du nur eine Domain einrichten und verwenden möchtest. ejabberd bietet aber mehrere Möglichkeiten verschiedene Domains zu verwenden. Deine User:innen können dann wählen zwischen name@beispiel.de oder name@example.com.
Wenn du deinen XMPP-Server zum ersten mal einrichtest, kannst du direkt mehrere Domains berücksichtigen, auch wenn du zunächst nur eine Domain besitzt. Voraussetzung ist, dass du direkt mit MySQL arbeitest.
Ergänze den SQL Block:
sql_type: mysql sql_server: "localhost" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "<geheim>" auth_method: sql default_db: sql default_ram_db: sql
mit der Zeile:
sql_type: mysql sql_server: "localhost" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "<geheim>" auth_method: sql default_db: sql default_ram_db: sql new_sql_schema: true
Die zusätzliche Domain fügst du dann zum hosts Block hinzu:
- hosts: - <beispiel.de> - <example.com>
Wenn du später eine weitere Domain ergänzen möchtest, ist auch das möglich. Du kannst hierbei wählen, ob du jede Domain individuell konfigurierst, oder direkt auf das „neue“ SQL Schema wechselt. Letztere ist wohl die sinnvollere Variante, da eine dritte oder vierte Domain so sehr einfach hinzugefügt werden kann und auch die Wartung der Datenbank einfacher bleibt. Bei individueller Konfiguration hättest du für jede Domain eine eigene Datenbank.
ejabberd stoppen und neues Datenbankschema einspielen:
$ systemctl stop ejabberd.service $ wget https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.old-to-new.sql $ mysql -D ejabberd -u ejabberd -p < mysql.old-to-new.MySQL Enter password: <geheim>
Als ejabberd weiterarbeiten und die Konfiguration anpassen:
$ su - ejabberd $ jed opt/ejabberd/conf/ejabber.yml
Ergänze den SQL Block:
sql_type: mysql sql_server: "localhost" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "<geheim>" auth_method: sql default_db: sql default_ram_db: sql
mit der Zeile:
sql_type: mysql sql_server: "localhost" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "<geheim>" auth_method: sql default_db: sql default_ram_db: sql new_sql_schema: true
Die zusätzliche Domain fügst du dann zum hosts Block hinzu:
- hosts: - <beispiel.de> - <example.com>
Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.
Den ejabberd Kontext verlassen und den XMPP-Server wieder starten:
$ exit $ systemctl start ejabberd.service
Da ich meinen Server jabjab.de schon länger betreibe, habe ich noch eine individuelle Konfiguration für jede Domain. Die Möglichkeit mehrere Domains mit nur einer Datenbank zu betreiben kam erst sehr viel später.
Der Vollständigkeit halber, möchte ich hier die Konfiguration auch einmal vorstellen:
hosts: - "<beispiel.de>" - "<example.com>" host_config: "<beispiel.de>": sql_username: "<ejabberd_beispiel_de>" sql_type: mysql sql_server: "localhost" sql_port: 3306 sql_password: "<geheim>" sql_database: "<ejabberd_beispiel_de>" auth_method: - sql auth_password_format: scram auth_scram_hash: sha512 "<example.com>": sql_username: "<ejabberd_example_com>" sql_type: mysql sql_server: "localhost" sql_port: 3306 sql_password: "<geheim>" sql_database: "<ejabberd_example_com>" auth_method: - sql auth_password_format: scram auth_scram_hash: sha512