Добрый день!
Установил ejabberd, он запускается, работает, клиенты регистрируются и цепляются, но есть две проблеммы, которые я не могу устранить и просто уже не знаю где найти информацию, толком ничего внятного нигде не прописано:
1. В конфиге, прописан модуль muc. Но при подключении в списке сервисов клиента (psi) нету конференций. и в логах имеются следующие ошибки, причина, которых мне не ясна:
=ERROR REPORT==== 2009-06-06 14:09:58 ===
E(<0.35.0>:gen_mod:73) : {undef,
[{mod_muc,start,
["localhost",
[{host,"conference.tt32.ru"},
{access,muc},
{access_create,muc},
{access_persistent,muc},
{access_admin,muc_admin}]]},
{gen_mod,start_module,3},
{lists,foreach,2},
{ejabberd_app,start,2},
{application_master,start_it_old,4}]}
=ERROR REPORT==== 2009-06-06 14:09:58 ===
E(<0.35.0>:gen_mod:73) : {undef,
[{mod_pubsub,start,
["localhost",
[{access_createnode,pubsub_createnode},
{plugins,["default","pep"]}]]},
{gen_mod,start_module,3},
{lists,foreach,2},
{ejabberd_app,start,2},
{application_master,start_it_old,4}]}
=ERROR REPORT==== 2009-06-06 14:09:58 ===
E(<0.35.0>:gen_mod:73) : {undef,
[{mod_muc,start,
["tt32.ru",
[{host,"conference.tt32.ru"},
{access,muc},
{access_create,muc},
{access_persistent,muc},
{access_admin,muc_admin}]]},
{gen_mod,start_module,3},
{lists,foreach,2},
{ejabberd_app,start,2},
{application_master,start_it_old,4}]}
=ERROR REPORT==== 2009-06-06 14:09:58 ===
E(<0.35.0>:gen_mod:73) : {undef,
[{mod_pubsub,start,
["tt32.ru",
[{access_createnode,pubsub_createnode},
{plugins,["default","pep"]}]]},
{gen_mod,start_module,3},
{lists,foreach,2},
{ejabberd_app,start,2},
{application_master,start_it_old,4}]}
Чего я только не делал, ничего не получается.
2. Еще одна проблема - нерабочая админская панель. Порт 5280 слушается, когда набираю
Вот конфиг ejabberd:
{loglevel, 4}.
{hosts, ["localhost","tt32.ru"]}.
{listen,
[
{5222, ejabberd_c2s, [
%%
%% If TLS is compiled and you installed a SSL
%% certificate, put the correct path to the
%% file and uncomment this line:
%%
%%{certfile, "/etc/jabber/ssl.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%%
%% To enable the old SSL connection method in port 5223:
%%
%%{5223, ejabberd_c2s, [
%% {access, c2s},
%% {shaper, c2s_shaper},
%% {certfile, "/etc/jabber/ssl.pem"}, tls,
%% {max_stanza_size, 65536}
%% ]},
{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
%%
%% ejabberd_service: Interact with external components (transports...)
%%
%%{8888, ejabberd_service, [
%% {access, all},
%% {shaper_rule, fast},
%% {ip, {127, 0, 0, 1}},
%% {hosts, ["icq.example.org", "sms.example.org"],
%% [{password, "secret"}]
%% }
%% ]},
{5280, ejabberd_http, [
http_poll,
web_admin
]}
]}.
{auth_method, internal}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{acl, admin, {user, "clearkbdbuf"}}.
{acl, local, {user_regexp, ""}}.
{access, max_user_sessions, [{10, all}]}.
{access, local, [{allow, all}]}.
{access, c2s, [{deny, blocked},
{allow, all}]}.
{access, c2s_shaper, [{none, admin},
{normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, announce, [{allow, admin}]}.
{access, configure, [{allow, admin}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{access, pubsub_createnode, [{allow, admin}]}.
{access, register, [{deny, all}]}.
{language, "en"}.
{modules,
[
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % recommends mod_adhoc
{mod_caps, []},
{mod_configure,[]}, % requires mod_adhoc
{mod_disco, []},
%%{mod_echo, [{host, "echo.localhost"}]},
%{mod_irc, []},
{mod_last, []},
{mod_muc, [
{host, "conference.tt32.ru"},
{access, muc},
{access_create, muc},
{access_persistent, muc},
{access_admin, muc_admin}
]},
%%{mod_muc_log,[]},
{mod_offline, []},
{mod_privacy, []},
{mod_private, []},
%%{mod_proxy65,[]},
{mod_pubsub, [ % requires mod_caps
{access_createnode, pubsub_createnode},
{plugins, ["default", "pep"]}
]},
{mod_register, [
%%
%% After successful registration, the user receives
%% a message with this subject and body.
%%
{welcome_message, {"Welcome!",
"Hi\nWelcome to TT Jabber Server."}},
%%
%% When a user registers, send a notification to
%% these Jabber accounts.
%%
%%{registration_watchers, ["admin1@example.org"]},
{access, register}
]},
{mod_roster, []},
%%{mod_service_log,[]},
{mod_shared_roster,[]},
{mod_stats, []},
{mod_time, []},
{mod_vcard, []},
{mod_version, []}
]}.
Вот фрагмент зонного файла кофигурации DNS:
$ORIGIN tt32.ru.
mail A 78.110.242.10
ns A 78.110.242.10
www A 78.110.242.10
conference A 78.110.242.10
_jabber._tcp.tt32.ru. 86400 IN SRV 5 0 5269 tt32.ru.
_xmpp-server._tcp.tt32.ru. 86400 IN SRV 5 0 5269 tt32.ru.
_xmpp-client._tcp.tt32.ru. 86400 IN SRV 5 0 5222 tt32.ru.
Дополнительная информация:
ОС: Linux Gentoo
Firewalls: нет
Буду очень признателен, если найдется человек, который мне поможет понять в чем суть проблеммы. Буду даже благодарен если ткнут лицом где искать. Любая помощь очень ценна, спасибо!
дай вывод emerge -pv
дай вывод emerge -pv ejabberd
попробуй убрать из {hosts, ["localhost","tt32.ru"]}. localhost (зачем он там?)
Вывод emerge
дай вывод emerge -pv ejabberd
попробуй убрать из {hosts, ["localhost","tt32.ru"]}. localhost (зачем он там?)
Без localhost почему-то была ошибка "RPC failed on the node '@@oldman': nodedown"
Вывод emerge -pv ejabberd:
oldman ~ # emerge -pv ejabberd
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] net-im/ejabberd-2.0.4 USE="pam ssl zlib -debug -ldap -mod_irc -mod_muc -mod_pubsub -odbc -web" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
Косяки
Если я правильно понимаю то косяки вот в этих параметрах: -mod_muc -web.
Попробую пересобрать и отпишусь.
SOLVED
Проблема с конференциями и web-интерфейсом управления, действительно, заключалась в этих USE-флагах. Пересобрал с mod_muc и web, все заработало!
Спасибо за подсказку!
...
Без localhost почему-то была ошибка "RPC failed on the node '@@oldman': nodedown"
это другая проблема и решать её нужно по-другому. а с localhost непонятно каким из виртуальных хостов ты управляешь.
Другая проблема
А как ее решать иначе?
конфиги почитать.
А как ее решать иначе?
скрипты ejabberd вычисляют имя ноды как ejabberd@`hostname -s`
можно добиться соответствия вывода этой команды доменному имени (что, вобщем-то, логично), или-же напрямую прописать это в настройках стартового скрипта. стоит так-же помнить что сейчас у тебя фактически работает 2 сервера.
tnx
Ок, спасибо, большое, буду вкуривать.