如何安装和配置mod_archive?


需要把ejabberd的消息存在服务器端,但是关于modarchive的相关资料太少。请问该如何安装和配置modarchive呢?

ejabberd 经验 mod_archive

狮心王丨理查 10 years ago

这里介绍一下配合mysql的例子:

  1. Install the MySQL ODBC driver,

    apt-get install libmyodbc
    
  2. 为ejabberd 创建odbc配置 /etc/odbc.ini,

    [ODBC Data Sources]
    odbcname     = MyODBC 3.51 Driver DSN
    
    [ejabberd]
    Driver       = /usr/lib/odbc/libmyodbc.so
    Description  = MyODBC 3.51 Driver DSN
    SERVER       = localhost
    PORT         =
    USER         = ejabberd
    Password     = ejabberd
    Database     = ejabberd
    OPTION       = 3
    SOCKET       =
    
  3. 下载mod_archive

    svn co https://svn.process-one.net/ejabberd-modules
    cd ejabberd-modules/mod_archive/trunk
    ./build.sh
    

    这时会在ebin文件夹中生成 *.beam。将这些beam文件拷贝至ejabberd的ebin文件夹, /usr/lib/ejabberd/ebin/。

  4. 使用modarchive中的sql脚本来创建mysql的table。 脚本的位置在 ejabberd-modules/modarchive/trunk/src/*.sql. 这里你需要使用的是 modarchiveodbc_mysql.sql.
  5. 在ejabberd.cfg中添加配置,以便开启mod_archive, 在moduls里面,添加:

    {mod_archive_odbc, []},
    

    同时创建odbc连接:

    {odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.
    

    注意:此时,登录认证不会使用这个mysql数据库,因为认证的配置依然是:

    {auth_method, internal}.
    

    也就是说,认证仍然啊使用的是内部的mnesia数据库。

  6. 要在浏览器中查看archives,需要在ejabberd.cfg中添加如下配置:

    {request_handlers, [{["archive"],mod_archive_webview}]}
    

    最后5280端口的设置如下:

     {5280, ejabberd_http, [
         http_poll,
         web_admin,
                     {request_handlers, [{["archive"],mod_archive_webview}]}
                 ]}
    
     ]}.
    

    你可以通过 http://host:5280/archive/ 来访问archive

绿色动力小水枪 answered 10 years ago

Your Answer