所有关于 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}]},
所以现在有效!
我不记得我是否使用
trunk
或branches/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