после дополнительного колупания получилось запустить сервак вручную!
новый 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/ ...а я уж отчаялся..
Ну, в общем, вот что получилось. Теперь надо сделать запуск через скрипт... может еще что-то не так, посоветуйте, пожалуйста!