ejabberd+MySQL (под Gentoo)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

NeverM
Сообщения: 248
ОС: gentoo

ejabberd+MySQL

Сообщение NeverM »

Решил поднять для себя jabber сервер под Gentoo, долго выбирал и решил поставить ejabberd с хранением баз в mysql. Собирал с такими флагами: USE="odbc pam ssl web zlib -debug -ldap -mod_irc -mod_muc -mod_pubsub". Без mysql вроде всё отлично работает но при попытке подключить mysql сервер запускается и падает, вот кусок лога /var/log/jabber/sasl.log:

Код:

=PROGRESS REPORT==== 18-Jun-2008::03:13:07 === supervisor: {local,stringprep_sup} started: [{pid,<0.177.0>}, {name,stringprep}, {mfa,{stringprep,start_link,[]}}, {restart_type,permanent}, {shutdown,brutal_kill}, {child_type,worker}] =CRASH REPORT==== 18-Jun-2008::03:13:07 === crasher: pid: <0.35.0> registered_name: [] exception exit: {bad_return,{{ejabberd_app,start,[normal,[]]}, {'EXIT',database_module_missing}}} in function application_master:init/4 initial call: application_master:init(<0.5.0>,<0.34.0>, {appl_data,ejabberd, [ejabberd,ejabberd_sup, ejabberd_auth,ejabberd_router, ejabberd_sm,ejabberd_s2s, ejabberd_local,ejabberd_listeners, ejabberd_iq_sup, ejabberd_service_sup, ejabberd_s2s_out_sup, ejabberd_s2s_in_sup, ejabberd_c2s_sup, ejabberd_mod_roster, ejabberd_mod_echo, ejabberd_mod_pubsub, ejabberd_mod_irc,ejabberd_mod_muc, ejabberd_offline,random_generator], undefined, {ejabberd_app,[]}, [acl,adhoc,configure, cyrsasl_anonymous,cyrsasl, cyrsasl_digest,cyrsasl_plain, ejabberd_admin,ejabberd_app, ejabberd_auth_anonymous, ejabberd_auth, ejabberd_auth_external, ejabberd_auth_internal, ejabberd_auth_ldap, ejabberd_auth_odbc, ejabberd_auth_pam,ejabberd, ejabberd_c2s,ejabberd_c2s_config, ejabberd_config,ejabberd_ctl, ejabberd_frontend_socket, ejabberd_hooks,ejabberd_http, ejabberd_http_bind, ejabberd_http_poll, ejabberd_listener,ejabberd_local, ejabberd_logger_h, ejabberd_loglevel, ejabberd_node_groups, ejabberd_rdbms,ejabberd_receiver, ejabberd_router,ejabberd_s2s, ejabberd_s2s_in,ejabberd_s2s_out, ejabberd_service,ejabberd_sm, ejabberd_socket,ejabberd_sup, ejabberd_system_monitor, ejabberd_tmp_sup,ejabberd_update, ejabberd_web_admin,ejabberd_web, ejabberd_zlib,ejd2odbc,eldap, eldap_filter,eldap_pool, eldap_utils,'ELDAPv3',extauth, gen_iq_handler,gen_mod, gen_pubsub_node, gen_pubsub_nodetree,iconv,idna, jd2ejd,jlib,mod_adhoc, mod_announce,mod_caps, mod_configure2,mod_configure, mod_disco,mod_echo,mod_http_bind, mod_http_fileserver,mod_irc, mod_irc_connection,mod_last, mod_last_odbc,mod_muc,mod_muc_log, mod_muc_room,mod_offline, mod_offline_odbc,mod_privacy, mod_privacy_odbc,mod_private, mod_private_odbc,mod_proxy65, mod_proxy65_lib, mod_proxy65_service, mod_proxy65_sm,mod_proxy65_stream, mod_pubsub,mod_register, mod_roster,mod_roster_odbc, mod_service_log,mod_shared_roster, mod_stats,mod_time,mod_vcard, mod_vcard_ldap,mod_vcard_odbc, mod_version,node_buddy,node_club, node_default,node_dispatch, node_pep,node_private,node_public, nodetree_default,nodetree_virtual, p1_fsm,p1_mnesia, ram_file_io_server,randoms,sha, shaper,stringprep,stringprep_sup, tls,translate,xml,xml_stream, 'XmppAddr'], [],infinity,infinity}, normal) ancestors: [<0.34.0>] messages: [{'EXIT',<0.36.0>,normal}] links: [<0.34.0>,<0.5.0>] dictionary: [] trap_exit: true status: running heap_size: 987 stack_size: 23 reductions: 115 neighbours:


в конфиге mysql подключал так:

Код: Выделить всё

{auth_method, odbc}.
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "password"}}.


Помогите!
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: ejabberd+MySQL

Сообщение NeverM »

Ещё заметил: при запуске ejabberd в консоль сыпется:

Код: Выделить всё

C(<0.41.0>:ejabberd_check:61) : ejabberd is configured to use 'mysql', but the following Erlang modules are not installed: '[mysql,
                                                                                                                             mysql_auth,
                                                                                                                             mysql_conn,
                                                                                                                             mysql_recv]'

=INFO REPORT==== 18-Jun-2008::04:51:34 ===
    application: ejabberd
    exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
                         {'EXIT',database_module_missing}}}
    type: temporary


Erlang собран так: USE="hipe odbc ssl -doc -emacs -java -kpoll -smp -tk"
Спасибо сказали:
Аватара пользователя
zveryga
Сообщения: 15
ОС: Gentoo

Re: ejabberd+MySQL

Сообщение zveryga »

тоже интересуюсь решением
Powered by Gentoo GNU/Linux
Free as Freedom...
Спасибо сказали:
alfss
Сообщения: 262

Re: ejabberd+MySQL

Сообщение alfss »

полный конфиг
Спасибо сказали:
alfss
Сообщения: 262

Re: ejabberd+MySQL

Сообщение alfss »

http://www.process-one.net/docs/ejabberd/g..._en.html#htoc28

могу предложить почитать данное руководство на тему "native MySQL interface"
Спасибо сказали:
anix
Сообщения: 1
ОС: FreeBSD + Debian

Re: ejabberd+MySQL

Сообщение anix »

Код: Выделить всё

[anix@freejabber ~]$ uname -sr
FreeBSD 7.0-RELEASE-p3

[anix@freejabber ~]$ pkg_info | grep erlang
erlang-mysql-1.0_2  Native MySQL driver for Erlang
erlang-r12b5_2,1    A functional programming language from Ericsson

[anix@freejabber ~]$ pkg_info | grep jabber
ejabberd-1.1.4_2    Free and Open Source distributed fault-tolerant Jabber serv


я тоже долго долбался с тем, что ни в какую ejabberd не хотел работать с mysql. Оказалось просто как мычание: erlang-у не хватало либы для работы с mysql. Доставил

Код: Выделить всё

make -C /usr/ports/databases/erlang-mysql



Все, что касается mysql в конфиге - как и описано в офиц. доке:

Код: Выделить всё

{auth_method, odbc}.
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "p@s$w0rd"}}.


Плюс еще мелочь - меняем в конфиге ejabberd-а:

Код: Выделить всё

mod_last на mod_last_odbc
mod_offline на mod_offline_odbc
mod_roster на mod_roster_odbc
mod_vcard на mod_vcard_odbc


И еще. В процессе отладки полезно детализировать логи:

Код: Выделить всё

{loglevel, 4}.
или
{loglevel, 5}.


disclaimer
ejabberd я подымал на фре. Как пакет erlang-mysql называется в *linux, я не знаю, а гуглить и насиловать apt-get или emerge было лень. :)
Спасибо сказали:
elve
Сообщения: 69
ОС: Gentoo Linux

Re: ejabberd+MySQL

Сообщение elve »

http://bugs.gentoo.org/174779
вот по этой ссылочке есть ebuild и нужные файлы
Спасибо сказали: