Ejabberd가 실패하는 이유는 무엇입니까?


9

나는 설치하려고 ejabberd 2.1.10-2내에서 Ubuntu 12.04.1서버. 이것은 새로 설치되며 ejabberd는 성공적으로 설치되지 않습니다.

설치

매번 apt-get은 이것에 매달립니다.

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 'killall는' beam, beam.smp, epmd, 및 ejabberd프로세스. 모든 방화벽 제한을 해제했습니다.

epmd -names설치가 중단 된 동안 의 결과는 다음과 같습니다 .

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

그리고 실패한 후에 :

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

동시에 (도중 및 이후)에, 양의 출력 netstat -atnp | grep 5222과는 netstat -atnp | grep 5280비어있다.


충돌 파일

크래시 덤프 파일은에 생성됩니다 /var/log/ejabber/erl_crash.dump. 슬로건 (예 : 충돌 원인)은 다음과 같습니다.

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

살아있어?

로 ejabberd를 다시 시작하려고 할 때마다 service ejabberd start동일한 작업이 발생합니다. 이렇게하기 전에 모든 프로세스를 종료 한 경우에도 마찬가지입니다.

그러나 위에 나열된 모든 프로세스를 다시 종료하고 실행 su - ejabberd -c /usr/sbin/ejabberd하면 다음과 같은 결과가 나타납니다.

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

그런 다음 서버가 실행중인 것으로 나타납니다. 에 액세스하면 로그인 프롬프트가 표시됩니다 http://mydomain.com:5280/admin/. 물론 계정을 만들지 않으면 로그인 할 수 없습니다.

현재 netstat -atnp | grep 5222및 의 출력은 netstat -atnp | grep 5280다음과 같습니다.

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

ejabberd가 실행중인 것처럼 보이지만 ejabberdctl로 작업을 시도하면 실패합니다. 예를 들어 : 사용자 등록을 시도하는 경우 :

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

내가 뭘 잘못하고 있는지 전혀 모른다. 이것은 동일한 소프트웨어가 설치된 두 개의 다른 서버에서 발생합니다 (실제로 많은 것은 아닙니다). 도와주세요. 감사.


추측으로, 개발자 웹 사이트에서 바이너리 / 패키지를 얻거나 소스에서 빌드를 시도 했습니까? 또한 12.10의 VM (또는 실제 설치)에 설치를 테스트 했습니까?
fouric

답변:


7

데몬이 ejabber 구성 파일에서 지정한 호스트 이름의 IP 주소를 확인할 수 없을 때이 문제가 한 번 발생했습니다. 내 해결책은 / etc / hosts 파일을 편집하고 내 공용 IP 주소와 ejabber가 응답하려는 도메인에 대한 호스트 이름 항목이 있는지 확인하는 것이 었습니다.

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

글쎄, 당신은 사진을 얻을. 희망이 도움이됩니다.


확인한 결과 / etc / hosts 파일에 도메인 이름과 공개 IP를 가진 항목이 이미 있습니다. 그러나 나는 당신이 이것에 올바른 길을 가고 있다고 생각합니다. 방금 "ejabberd @ ns1 노드에 대한 RPC 연결 실패"라는 오류 메시지가 나타났습니다. ns1은 시스템 이름이지만 도메인 이름이 아닙니다. 도메인 이름이 표시되어야합니까?
Andrew Ensley

1
그래도 확실합니다. 적어도 ns1을 hosts 파일에 추가해야합니다. 0.0.0.0과 같은 <FQDN> <호스트 이름>
Frank Barcenas

홀리 ... 나도 ... / ns1을 내 / etc / hosts 파일에 추가하는 것이 효과가있었습니다. 맙소사.
Andrew Ensley

1
잘 처리 했다니 다행입니다. 행운과 힘이 당신과 함께 할 수 있습니다. :-)
Frank Barcenas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.