Чому Еябберд починається з ладу?


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,[]]}}})

Воно живе?

Кожен раз, коли я намагаюся відновити еябберд 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

Навіть коли це з'являється, еябберд працює, спроба зробити що-небудь із ejabberdctl не вдається. Наприклад: спроба зареєструвати користувача:

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

Я поняття не маю, що я роблю неправильно. Це відбувається на двох різних серверах, у яких я встановив однакове програмне забезпечення (насправді не багато нічого). Будь ласка, допоможіть. Дякую.


Лише здогадка, чи спробували ви придбати бінарний / пакунок з веб-сайту розробника або будувати з джерела? Також ви перевірили, встановивши його в VM (або фактичну установку) 12.10?
чотирирічний

Відповіді:


7

У мене виникла ця проблема одного разу, коли демон не міг визначити ip адресу імені хоста, який я дав у файлі конфігурації ejabber. Моє рішення полягало в тому, щоб відредагувати файл / etc / hosts та переконатися, що там було вказано ім’я хоста для моєї загальнодоступної ip-адреси та домену, на який я хотів відповісти ejabber.

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

Ну, ви отримаєте картину. Сподіваюся, що це допомагає.


Я перевірив, і у мене вже є запис у моєму файлі / etc / hosts зі своїм доменним іменем та загальнодоступною IP-адресою. Однак я думаю, що ти на цьому правильно. Щойно я помітив повідомлення про помилку: "Помилка з'єднання RPC з вузлом ejabberd @ ns1". ns1 - це ім'я машини, але це не доменне ім'я. Чи повинно там бути вказано доменне ім’я?
Ендрю Енслі

1
так точно ... Вам слід принаймні додати ns1 до файлу хостів. як 0.0.0.0 <FQDN> <ім'я імені>
Франк Барсенас

Святий ... я навіть не ... Додано ns1 до файлу / etc / hosts. Добре горе.
Ендрю Енслі

1
Радий почути, що ти це подбав. Удачі і нехай сила буде з вами. :-)
Франк Барсенас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.