web-dev-qa-db-fra.com

Pourquoi Ejabberd Start échoue-t-il?

J'essaie d'installer ejabberd 2.1.10-2 sur mon serveur Ubuntu 12.04.1. Ceci est une nouvelle installation et ejabberd n’est jamais installé avec succès.

L'installation

A chaque fois, apt-get dépend de ceci:

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.

Les points disparaissent pour toujours jusqu'à ce que le délai imparti soit dépassé ou que je "tue" les processus beam, beam.smp, epmd et ejabberd. J'ai désactivé toutes les restrictions du pare-feu.

Voici le résultat de epmd -names pendant l'installation:

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

Et après cela échoue:

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

En même temps (pendant et après), la sortie de netstat -atnp | grep 5222 et netstat -atnp | grep 5280 est vide.


Le fichier d'accident

Un fichier de vidage sur incident est créé à /var/log/ejabber/erl_crash.dump. Le slogan (c.-à-d. La raison du crash) est:

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

C'est vivant?

Chaque fois que j'essaie de relancer ejabberd avec service ejabberd start, la même chose se produit - même si j'ai déjà tué tous les processus.

Cependant, lorsque je tue à nouveau tous les processus énumérés ci-dessus et exécute su - ejabberd -c /usr/sbin/ejabberd, voici le résultat obtenu:

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

Ensuite, le serveur semble être en cours d'exécution. Je reçois une invite de connexion lorsque j'accède à http://mydomain.com:5280/admin/. Bien sûr, je ne peux pas me connecter à moins de créer un compte.

À ce stade, la sortie de netstat -atnp | grep 5222 et netstat -atnp | grep 5280 est la suivante:

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

Même lorsqu'il semble que ejabberd est en cours d'exécution, toute tentative avec ejabberdctl échoue. Par exemple: essayer d’enregistrer un utilisateur:

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

Je n'ai aucune idée de ce que je fais mal. Cela se produit sur deux serveurs différents que j'ai avec un logiciel identique installé (vraiment pas grand chose de tout). S'il vous plaît aider. Merci.

9
Andrew Ensley

J'ai eu ce problème une fois où le démon n'a pas pu déterminer l'adresse IP du nom d'hôte que j'ai donné dans le fichier de configuration ejabber. Ma solution était d'éditer le fichier/etc/hosts et de m'assurer qu'il y avait une entrée de nom d'hôte pour mon adresse IP publique et le domaine auquel ejabber devait répondre.

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

Eh bien, vous obtenez l'image. J'espère que cela pourra aider.

7
Frank Barcenas