ejabberd服务器mod_archive模块

Sat*_*abu 2 xmpp ejabberd

我正在尝试为我的ejabberd服务器设置消息存档.我试图在链接http://lboynton.com/2009/11/25/ejabberd-mod_archive-with-mysql-on-ubuntu/之后添加新模块mod_archive .之后,我无法重新启动ejabberd服务器并在ejabberd.log中给出以下错误

= ERROR REPORT ==== 2010-11-16 12:44:41 === E(<0.38.0>:ejabberd_rdbms:67):主管ejabberd_odbc_sup_localhost启动失败:{error,{shutdown,{child,undefined, ejabberd_odbc_sup_localhost,{ejabberd_odbc_sup,start_link,["localhost"]},transient,infinity,supervisor,[ejabberd_odbc_sup]}}}

谢谢,

Sathi.

小智 6

关于Ejabberd中mod_archive的所有互联网教程都是不完整或非常重要的.或者可能是旧的.所以我的问题是我正在使用Ubuntu 12.04服务器LTS与Mysql.我做了所有博客中解释的所有事情.

所以要安装mod_archive我需要这样做:

典型的:

svn co https://svn.process-one.net/ejabberd-modules
cd ejabberd-modules/mod_archive/trunk
./build.sh
cp ebin/*modules in EJABBERD
Run Code Online (Sandbox Code Playgroud)

并配置 /etc/ejabberd.cfg

但是使用这种方法EJABBERD不起作用.

所以我发现我们需要编译其他任何网站都没有解释过的MODULE.该模块称为CON​​N_MYSQL

我们可以使用相同的ejabber模块下载.所以在SVN(https://svn.process-one.net/ejabberd-modules)中有

cd ejabberd-modules/mysql/trunk
./build.sh
cp ebin/*modules in EJABBERD
Run Code Online (Sandbox Code Playgroud)

和工作.....

我需要花很多时间才能发现这一点.

我无法在ejabberd.cfg中使用此行配置:{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}因为aplication崩溃并说:

=ERROR REPORT==== 2012-11-28 18:01:08 ===
E(<0.437.0>:mod_archive_odbc:867) : should_store_jid failed: {xmlelement,
                                                              "error",
                                                              [{"code","500"},
                                                               {"type",
                                                                "wait"}],
                                                              [{xmlelement,
                                                                "internal-server-error",
                                                                [{"xmlns",
                                                                  "urn:ietf:params:xml:ns:xmpp-stanzas"}],
                                                                []}]}
Run Code Online (Sandbox Code Playgroud)

所以我在ejabberd.cfg中使用这一行:{odbc_server,{mysql,"server","database","username","password"}}.

并将此行纳入模块配置:

  {mod_archive_odbc, [{database_type, "mysql"}, {default_auto_save, true}, {enforce_default_auto_save, true}]},
Run Code Online (Sandbox Code Playgroud)

所以现在有效!

如果我使用,我不会记得

trunk或者branches/ejabberd-2.0.x在Emakefile中.你可以尝试一个,如果不行,你可以试试另一个.

啊! 并重新编译

./configure --enable-odbc the ejabberd source code. 
Run Code Online (Sandbox Code Playgroud)

你可以得到这个

wget http://www.process-one.net/en/ejabberd/ejabberd/2.1.11/ejabberd-2.1.11.tgz
Run Code Online (Sandbox Code Playgroud)

也许有必要这个包:

apt-get install iodbc libmyodbc
Run Code Online (Sandbox Code Playgroud)