2

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

=错误报告==== 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”]},瞬态,无穷大,主管,[ejabberd_odbc_sup]}}}

谢谢,

沙蒂。

4

2 回答 2

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

并配置/etc/ejabberd.cfg

但使用这种方法 EJABBERD 不起作用。

所以我发现我们需要编译其他没有在任何站点中解释的 MODULE。该模块名为 CONN_MYSQL

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

cd ejabberd-modules/mysql/trunk
./build.sh
cp ebin/*modules in EJABBERD

和工作.....

我需要很多时间来发现这一点。

我不能在 ejabberd.cfg 中使用此行配置:{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}因为应用程序崩溃并说:

=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"}],
                                                                []}]}

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

并将这一行放入模块配置中:

  {mod_archive_odbc, [{database_type, "mysql"}, {default_auto_save, true}, {enforce_default_auto_save, true}]},

所以现在有效!

我不记得我是否使用

trunkbranches/ejabberd-2.0.x在 Emakefile 中。您可以尝试一种,如果不起作用,您可以尝试另一种。

啊! 并记得编译

./configure --enable-odbc the ejabberd source code. 

你可以把这个放进去

wget http://www.process-one.net/en/ejabberd/ejabberd/2.1.11/ejabberd-2.1.11.tgz

也许有必要这个包:

apt-get install iodbc libmyodbc
于 2012-11-29T12:18:08.037 回答
0

我使用这个没有任何错误:http ://www.ndl.kiev.ua/content/mod_archive_odbc-release

于 2011-09-14T10:35:42.770 回答