Dlaczego uruchomienie Ejabberd kończy się niepowodzeniem?

9

Próbuję zainstalować ejabberd 2.1.10-2na moim Ubuntu 12.04.1serwerze. To jest nowa instalacja, a ejabberd nigdy nie został pomyślnie zainstalowany.

Instalacja

Za każdym razem apt-get zawiesza się na tym:

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.

Kropki po prostu pójść na zawsze, dopóki to razy się lub I „killall” beam, beam.smp, epmd, i ejabberdprocesy. Wyłączyłem wszystkie ograniczenia zapory.

Oto dane wyjściowe, epmd -namesgdy instalacja jest zawieszona:

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

A po awarii:

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

W tym samym czasie (podczas i po) dane wyjściowe zarówno netstat -atnp | grep 5222i netstat -atnp | grep 5280są puste.


Plik awarii

Plik zrzutu awaryjnego jest tworzony w /var/log/ejabber/erl_crash.dump. Hasło (tj. Przyczyna awarii) to:

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

To żyje?

Ilekroć próbuję ponownie uruchomić ejabberd service ejabberd start, dzieje się to samo - nawet jeśli wcześniej zabiłem wszystkie procesy.

Jednak gdy ponownie zabiję wszystkie procesy wymienione powyżej i uruchomię su - ejabberd -c /usr/sbin/ejabberd, oto wynik, który otrzymuję:

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

Następnie wydaje się, że serwer działa. Po uzyskaniu dostępu pojawia się monit o zalogowanie się http://mydomain.com:5280/admin/. Oczywiście nie mogę się zalogować, chyba że utworzę konto.

Obecnie dane wyjściowe netstat -atnp | grep 5222i netstat -atnp | grep 5280są następujące:

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

Nawet gdy wydaje się, że ejabberd działa, próba zrobienia czegokolwiek z ejabberdctl kończy się niepowodzeniem. Na przykład: próba zarejestrowania użytkownika:

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

Nie mam pojęcia, co robię źle. Dzieje się tak na dwóch różnych serwerach, na których mam identyczne oprogramowanie (naprawdę niewiele). Proszę pomóż. Dzięki.

Andrew Ensley
źródło
Tylko zgadnij, czy próbowałeś kupić binarny / pakiet ze strony internetowej dewelopera lub budować ze źródła? Czy przetestowałeś także instalację na maszynie wirtualnej (lub rzeczywistej instalacji) w wersji 12.10?
fouric 24.10.12

Odpowiedzi:

7

Miałem ten problem, gdy demon nie mógł ustalić adresu IP nazwy hosta podanej w pliku konfiguracyjnym ejabber. Moim rozwiązaniem było edytowanie pliku / etc / hosts i upewnienie się, że istnieje wpis nazwy hosta dla mojego publicznego adresu IP i domeny, na którą chciałbym odpowiedzieć ejabber.

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

Cóż, rozumiesz, o co chodzi. Mam nadzieję, że to pomaga.

Frank Barcenas
źródło
Sprawdziłem i mam już wpis w pliku / etc / hosts z moją nazwą domeny i publicznym adresem IP. Myślę jednak, że podążasz właściwą drogą. Właśnie zauważyłem komunikat o błędzie „Nieudane połączenie RPC z węzłem ejabberd @ ns1”. ns1 to nazwa komputera, ale nie jest to nazwa domeny. Czy to powinno pokazywać tam nazwę domeny?
Andrew Ensley
1
tak na pewno .. Powinieneś przynajmniej dodać ns1 do pliku hosts. jak 0.0.0.0 <FQDN> <nazwa hosta>
Frank Barcenas
Święty ... nawet nie ... Dodanie ns1 do mojego pliku / etc / hosts działało. O jeny.
Andrew Ensley
1
Cieszę się, że się tym zająłeś. Powodzenia i niech siła będzie z tobą. :-)
Frank Barcenas