Warum schlägt Ejabberd Start fehl?

9

Ich versuche, ejabberd 2.1.10-2auf meinem Ubuntu 12.04.1Server zu installieren . Dies ist eine Neuinstallation, und ejabberd wird nie erfolgreich installiert.

Die Installation

Jedes Mal hängt apt-get daran:

Setting up ejabberd (2.1.10-2ubuntu1) ...
Generating SSL certificate /etc/ejabberd/ejabberd.pem...

Creating config file /etc/ejabberd/ejabberd.cfg with new version
Starting jabber server: ejabberd............................................................ failed.

Die Punkte gehen Sie einfach für immer , bis es mal aus oder ich ‚killall‘ beam, beam.smp, epmdund ejabberdProzesse. Ich habe alle Firewall-Einschränkungen deaktiviert.

Hier ist die Ausgabe von, epmd -nameswährend die Installation hängt:

epmd: up and running on port 4369 with data:
name ejabberdctl at port 42108
name ejabberd at port 39621

Und nachdem es fehlgeschlagen ist:

epmd: up and running on port 4369 with data:
name ejabberd at port 39621

Gleichzeitig (während und nach) ist die Ausgabe von beiden netstat -atnp | grep 5222und netstat -atnp | grep 5280leer.


Die Absturzdatei

Eine Crash-Dump-Datei wird unter erstellt /var/log/ejabber/erl_crash.dump. Der Slogan (dh Grund für den Absturz) lautet:

Slogan: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

Es lebt?

Immer wenn ich versuche, ejabberd mit neu zu starten service ejabberd start, passiert dasselbe - auch wenn ich zuvor alle Prozesse abgebrochen habe.

Wenn ich jedoch alle oben aufgeführten Prozesse erneut beende und ausführe su - ejabberd -c /usr/sbin/ejabberd, wird folgende Ausgabe angezeigt:

Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)
(ejabberd@ns1)1> 
=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.478.0>:ejabberd_listener:166) : Reusing listening port for 5222

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.479.0>:ejabberd_listener:166) : Reusing listening port for 5269

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.480.0>:ejabberd_listener:166) : Reusing listening port for 5280

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.40.0>:ejabberd_app:72) : ejabberd 2.1.10 is started in the node ejabberd@ns1

Dann scheint der Server zu laufen. Ich erhalte eine Anmeldeaufforderung, wenn ich darauf zugreife http://mydomain.com:5280/admin/. Natürlich kann ich mich nur anmelden, wenn ich ein Konto erstelle.

Zu diesem Zeitpunkt ist die Ausgabe von netstat -atnp | grep 5222und netstat -atnp | grep 5280wie folgt:

tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      19347/beam      
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      19347/beam      

ejabberdctl

Selbst wenn ejabberd ausgeführt wird, schlägt der Versuch, mit ejabberdctl etwas zu tun, fehl. Beispiel: Versuch, einen Benutzer zu registrieren:

root@ns1:~# ejabberdctl register myusername mydomain.com mypassword
Failed RPC connection to the node ejabberd@ns1: nodedown

Ich habe keine Ahnung, was ich falsch mache. Dies geschieht auf zwei verschiedenen Servern, auf denen identische Software installiert ist (eigentlich nicht viel). Bitte helfen Sie. Vielen Dank.

Andrew Ensley
quelle
Haben Sie versucht, entweder eine Binärdatei / ein Paket von der Entwickler-Website zu erwerben oder aus dem Quellcode zu erstellen? Haben Sie auch die Installation in einer VM (oder einer tatsächlichen Installation) von 12.10 getestet?
Fouric

Antworten:

7

Ich hatte dieses Problem einmal, als der Dämon die IP-Adresse des Hostnamens, den ich in der ejabber-Konfigurationsdatei angegeben habe, nicht ermitteln konnte. Meine Lösung bestand darin, die Datei / etc / hosts zu bearbeiten und sicherzustellen, dass ein Hostname für meine öffentliche IP-Adresse und die Domain vorhanden ist, auf die ejabber antworten soll.

0.0.0.0 hostname.domain.com hostname
1.1.1.1 ns1.yahoo.com ns1

Nun, Sie bekommen das Bild. Ich hoffe, das hilft.

Frank Barcenas
quelle
Ich habe es überprüft und habe bereits einen Eintrag in meiner Datei / etc / hosts mit meinem Domainnamen und meiner öffentlichen IP. Ich denke jedoch, dass Sie damit auf dem richtigen Weg sind. Ich habe gerade die Fehlermeldung "Fehlgeschlagene RPC-Verbindung zum Knoten ejabberd @ ns1" bemerkt. ns1 ist der Name des Computers, aber nicht der Domänenname. Sollte das den Domainnamen dort anzeigen?
Andrew Ensley
1
Ja sicher. Sie sollten mindestens auch ns1 zur Hosts-Datei hinzufügen. wie 0.0.0.0 <FQDN> <Hostname>
Frank Barcenas
Heilig ... ich habe nicht einmal ... Das Hinzufügen von ns1 zu meiner / etc / hosts-Datei hat funktioniert. Guter Kummer.
Andrew Ensley
1
Ich bin froh zu hören, dass du dich darum gekümmert hast. Viel Glück und möge die Macht mit dir sein. :-)
Frank Barcenas