ejabberd 18.01 på Ubuntu 18.04

(Last Updated On: 19. februar 2019)

Setup og formål

Jeg benytter ejabberd gennem Apache proxy med mysql. Det giver serveren lidt ekstra arbejde at Apache er mellemmand men til gengæld skal jeg ikke bekymre mig om CORS eller at den port jeg bruger til ejabberd måske ikke er åben i brugerens netværk.

Det projekt jeg arbejder på, er en privat chat, og jeg benytter således ikke chat-rum eller konference funktionalitet. Brugerne sender blot beskeder direkte til hinanden. Klienten som vi selv har lavet, kommunikerer med ejabberd via Strophe.js.

Installation ejabberd

Efter opgradering af Ubuntu fra 16.04 til 18.04 fik jeg aldrig ejabberd til at fungere igen. Den fejl har jeg beskrevet på stackoverflow. Jeg endte derfor med at reinstallere den. Da jeg benytter mysql til data, er det ikke det store problem. Bruger du mnesia, skal du først eksportere og derefter importere dine data vha ejabberdctl.

Fjern tidligere installation:

Tjek at /etc/ejabberd er helt tom, ellers fjern hvad der måtte ligge.

Derefter kør en generel opdatering og installér igen:

MySQL database

Opret en database og en bruger til den. Hent ejabberd’s database schema fra deres hjemmeside. Indlæs det i din database.

Da jeg allerede havde en database, opdaterede jeg den med de ændringer der er sket siden version 16.01. Se ejabberd release notes.

ejabberd konfiguration

Registrer en admin bruger:

Hvis dit database setup er korrekt, vil denne bruger nu befinde sig i users tabellen.

Her er de relevante dele af /etc/ejabberd/ejabberd.yml :

Stop og start ejabberd efter ændringer i ejapperd.yml:

Apache Proxy

I den virtuelle host for chat3.myserver.com har jeg følgende linier:

Derefter genstart Apache. Besøg https://dit.domæne.com/http-bind/. Du skulle gerne se en velkomst side der indikerer at dit bosh link virker. Besøg også https://dit.domæne.com/admin/ og log ind med din admin bruger.