Perché l'avvio di Ejabberd fallisce?


9

Sto cercando di installare ejabberd 2.1.10-2sul mio Ubuntu 12.04.1server. Questa è una nuova installazione e ejabberd non viene mai installato con successo.

L'installazione

Ogni volta, apt-get si blocca su questo:

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.

I punti basta andare sempre fino a quando il tempo è scaduto o io 'killall' beam, beam.smp, epmd, e ejabberdprocessi. Ho disattivato tutte le restrizioni del firewall.

Ecco l'output di epmd -namesmentre l'installazione è bloccata:

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

E dopo che fallisce:

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

Allo stesso tempo (durante e dopo), l'output di entrambi netstat -atnp | grep 5222e netstat -atnp | grep 5280è vuoto.


Il file di crash

Un file di dump di arresto anomalo viene creato in /var/log/ejabber/erl_crash.dump. Lo slogan (ovvero il motivo dell'incidente) è:

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

È viva?

Ogni volta che provo a riavviare ejabberd service ejabberd start, succede la stessa cosa, anche se ho già ucciso tutti i processi prima di farlo.

Tuttavia, quando eseguo nuovamente tutti i processi sopra elencati ed eseguo su - ejabberd -c /usr/sbin/ejabberd, questo è l'output che ottengo:

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

Quindi, il server sembra essere in esecuzione. Ricevo un prompt di accesso quando accedo http://mydomain.com:5280/admin/. Ovviamente non riesco ad accedere a meno che non crei un account.

In questo momento, l'output di netstat -atnp | grep 5222ed netstat -atnp | grep 5280è il seguente:

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

Anche quando sembra che ejabberd sia in esecuzione, il tentativo di fare qualsiasi cosa con ejabberdctl fallisce. Ad esempio: provare a registrare un utente:

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

Non ho idea di cosa sto facendo di sbagliato. Questo accade su due server diversi che ho installato con software identico (in realtà non molto). Per favore aiuto. Grazie.


Solo una supposizione, hai provato ad acquisire un binario / pacchetto dal sito web dello sviluppatore o costruire dalla fonte? Inoltre, hai provato a installarlo in una VM (o installazione effettiva) del 12.10?
Fouric

Risposte:


7

Ho avuto questo problema una volta quando il demone non è stato in grado di determinare l'indirizzo IP del nome host che ho fornito nel file di configurazione di ejabber. La mia soluzione era quella di modificare il file / etc / hosts e assicurarmi che ci fosse una voce del nome host per il mio indirizzo IP pubblico e il dominio a cui volevo che ejabber rispondesse.

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

Bene, ottieni l'immagine. Spero che aiuti.


Ho controllato e ho già una voce nel mio file / etc / hosts con il mio nome di dominio e IP pubblico. Tuttavia, penso che tu sia sulla buona strada con questo. Ho appena notato il messaggio di errore "Connessione RPC non riuscita al nodo ejabberd @ ns1". ns1 è il nome della macchina ma non è il nome di dominio. Dovrebbe mostrare il nome del dominio lì?
Andrew Ensley,

1
si certo .. Dovresti almeno aggiungere ns1 anche al file hosts. come 0.0.0.0 <FQDN> <nomehost>
Frank Barcenas,

Santo ... Non ho nemmeno ... L'aggiunta di ns1 al mio file / etc / hosts ha funzionato. Santo cielo.
Andrew Ensley,

1
Sono contento di sentire che te ne sei preso cura. Buona fortuna e che la forza sia con te. :-)
Frank Barcenas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.