The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"не запускается ejabberd, может из-за erlang?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"не запускается ejabberd, может из-за erlang?"  
Сообщение от peretz (ok) on 01-Авг-07, 17:35 
цель: запустить jabber сервер - ejabberd.
среда: FreeBSD 6.1-RELEASE i386
потрачено куча времени на изучение темы, поиск, скачивание, сборку...
вроде все собрал, конфиги настроил (маны изучил, рекомендации, инструкции и форумы перелазил, какие нашел)..
сам ejabberd после многочисленных проб поставил из портов, предварительно порты обновив.
причем обновил только перед последней установкой ejabberd.

в итоге не могу запустить ejabberd.
при запуске скриптом /usr/local/etc/rc.d/ejabberd restart
ничего не говорит, в логах пусто, кроме /var/log/messages - там:
Aug  1 23:38:30 mydomain epmd: epmd: epmd running - daemon = 1
и все.

запускаю ejabberdctl без параметров
идет ругань следующего плана:

# ejabberdctl
{"init terminating in do_boot",{badarg,[{ets,match_object,[ejabberd_ctl_cmds,'_']},{ets,tab2list,1},{ejabberd_ctl,print_usage,0},{ejabberd_ctl,start,0},{init,start_it,1},{init,start_em,1}]}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()

перелазил форумы с поисках ответов на многочисленные подобные вопросы - советы перепробовал, какие нашел. ничего не помогло.
не проверил пока один из советов - обновить erlang - один импортный товарищ вроде этим вылечился.

обновляю порт erlang, и, не деинсталлируя предыдущий, просто запускаю сборку: что-то скачалось, начали применяться патчи какие-то, судя по логу, ну и на этом все обрывается :

# cd /usr/ports/lang/erlang
# make
.......
===>  Patching for erlang-r11b5_1,1
===>   erlang-r11b5_1,1 depends on file: /usr/local/bin/perl5.8.8 - found
===>  Applying FreeBSD patches for erlang-r11b5_1,1
1 out of 1 hunks failed--saving rejects to Makefile.in.rej
=> Patch patch-Makefile.in failed to apply cleanly.
*** Error code 1

Stop in /usr/ports/lang/erlang.

вот этот файл, который он выплюнул: Makefile.in.rej

# cat ./Makefile.in.rej
***************
*** 528,541 ****
  # Erlang base public files
  #
  install.bin:
-       rm -f $(BINDIR)/erl $(BINDIR)/erlc \
-             $(BINDIR)/ecc $(BINDIR)/elink $(BINDIR)/ear $(BINDIR)/escript
        ${LN_S} $(ERLANG_BINDIR)/erl      $(BINDIR)/erl
        ${LN_S} $(ERLANG_BINDIR)/erlc     $(BINDIR)/erlc
-       ${LN_S} $(ERLANG_BINDIR)/ecc      $(BINDIR)/ecc
-       ${LN_S} $(ERLANG_BINDIR)/elink    $(BINDIR)/elink
-       ${LN_S} $(ERLANG_BINDIR)/ear      $(BINDIR)/ear
-       ${LN_S} $(ERLANG_BINDIR)/escript  $(BINDIR)/escript

  #
  # Directories needed before we can install
--- 528,536 ----
  # Erlang base public files
  #
  install.bin:
+       rm -f $(BINDIR)/erl $(BINDIR)/erlc
        ${LN_S} $(ERLANG_BINDIR)/erl      $(BINDIR)/erl
        ${LN_S} $(ERLANG_BINDIR)/erlc     $(BINDIR)/erlc

  #
  # Directories needed before we can install

я в ступоре, я не понимаю чего он от меня хочет!
куда рыть, люди добрые, помогите плиз!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "не запускается ejabberd, может из-за erlang?"  
Сообщение от peretz (ok) on 01-Авг-07, 19:44 
после дополнительного колупания получилось запустить сервак вручную!
новый erlang компилировать не пришлось - запустил на том что было.
получается, что я напутал с именами домена: где не надо ставил то mydomain, то mydomain.ru

!!! но проблема осталась: скрипт /usr/local/etc/rc.d/ejabberd не хочет запускать сервер жабера.

!!! и еще - может кто-то посоветует оптимизировать конфиги для применения этого при большом количестве юзеров?

но покажу что и как делал.
может, местами и ртфм-бояны, но они хотя бы собраны в понимаемую последоватеность ;)

сперва конфиг (убрано закомментированное):

---
# cat /usr/local/etc/ejabberd/ejabberd.cfg
override_acls.
{acl, admin, {user, "admin", "mydomain"}}.
{acl, web_admin, {user, "admin", "mydomain"}}.
{acl, local, {user_regexp, ""}}.
{access, pubsub_createnode, [{allow, all}]}.
{access, configure, [{allow, admin}]}.
{welcome_message, {"Welcome!",  "Welcome!"}}.
{access, announce, [{allow, admin}]}.
{access, c2s, [{deny, blocked}, {allow, all}]}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{access, c2s_shaper, [{none, admin}, {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{access, local, [{allow, local}]}.
{auth_method, odbc}.
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "password"}}.
{hosts, ["localhost", "mydomain"]}.
{max_user_sessions, 10}.
{language, "ru"}.
{listen,
[{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls, {certfile, "./ssl.pem"}]},
  {5223, ejabberd_c2s,     [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "./ssl.pem"}]},
  {5269, ejabberd_s2s_in,  [{shaper, s2s_shaper}, {max_stanza_size, 131072} ]},
  {5280, ejabberd_http,    [http_poll, web_admin]},
  {8888, ejabberd_service, [{access, all}, {hosts, ["icq.localhost", "sms.localhost"], [{password, "secret"}]}]}
]}.
{s2s_use_starttls, true}.
{s2s_certfile, "./ssl.pem"}.
{outgoing_s2s_port, 5269}.
{modules,
[
  {mod_register,   [{access, register}]},
  {mod_roster_odbc,     []},
  {mod_privacy,    []},
  {mod_adhoc,      []},
  {mod_configure,  []}, % Depends on mod_adhoc
  {mod_configure2, []},
  {mod_disco,      []},
  {mod_stats,      []},
  {mod_vcard_odbc,      []},
  {mod_offline_odbc,    []},
  {mod_announce,   [{access, announce}]}, % Depends on mod_adhoc
  {mod_echo,       [{host, "echo.localhost"}]},
  {mod_private,    []},
  {mod_irc,        []},
  {mod_muc,        [{access, muc}, {access_create, muc}, {access_admin, muc_admin}]},
  {mod_pubsub,     [{access_createnode, pubsub_createnode}]},
  {mod_time,       []},
  {mod_last_odbc,       []},
  {mod_version,    []}
]}.
---

еще хосты, на всякий.

---
# cat /etc/hosts
::1                     localhost.mydomain.ru localhost
127.0.0.1               localhost.mydomain.ru localhost mydomain
222.222.222.222         mydomain.ru
---

кстати, может подскажете, нужна ли строчка "::1", если да - то зачем?

А запустил это чудо современной мысли так (по путям видно немножко, что куда из портов поставилось):
кстати, запускается и от рута, и от ejabberd.

---
# erl -pa /var/lib/ejabberd/ebin -sname ejabberd -s ejabberd -ejabberd config \"/usr/local/etc/ejabberd/ejabberd.cfg\" -mnesia dir \"/var/spool/ejabberd\"
Erlang (BEAM) emulator version 5.4.12 [source] [hipe] [threads:0] [kernel-poll]

Eshell V5.4.12
..
..куча всякого..
..
=PROGRESS REPORT==== 2-Aug-2007::01:16:35 ===
         application: ejabberd
          started_at: ejabberd@mydomain
---

вот оно! запустился стервер. ну и заодно дал намек, как к нему обращаться: ejabberd@mydomain.
Но запустился процесс не фоном, потому я открыл еще одну сессию, ну и дальше начал пробовать:

---
# su ejabberd
$ ejabberdctl
{"init terminating in do_boot",{badarg,[{ets,match_object,[ejabberd_ctl_cmds,'_']},{ets,tab2list,1},{ejabberd_ctl,print_usage,0},{ejabberd_ctl,start,0},{init,start_it,1},{init,start_em,1}]}}
init terminating in do_boot ()
---

облом-с.. попробуем так:

---
$ ejabberdctl ejabberd@mydomain
Usage: ejabberdctl node command

Available commands:
... все как надо ...
---

ну вот - запустилось. далее посмотрим статус:

---
$ ejabberdctl ejabberd@mydomain status
Node ejabberd@mydomain is started. Status: started
ejabberd is running
---

белая полоса ;).. далее нам нужен админ, чтобы попасть в веб-админство:

---
$ ejabberdctl ejabberd@mydomain register admin mydomain.ru password
Can't register user "admin@mydomain.ru" at node ejabberd@mydomain: not_allowed
---

облом-с - но хоть понятно почему ;).. исправилсо:

---
$ ejabberdctl ejabberd@mydomain register admin mydomain password
$
---

о, аллах! я создал админа!
пробуем зайти в веб-админ:

http://mydomain.ru:5280/admin/

в идентификации указал:
admin@mydomain
password

и чудо все же произошло - я попал в http://mydomain.ru:5280/admin/vhosts/ ...а я уж отчаялся..

Ну, в общем, вот что получилось. Теперь надо сделать запуск через скрипт... может еще что-то не так, посоветуйте, пожалуйста!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру