日期:2014-05-16  浏览次数:20474 次

安装ejabberd2并配置MySQL为其数据库

以前用过openfire做为服务器,但是openfire的集群支持不是很好,所以改用Ejabberd,由于它是用Erlang语言开发的,其并发率与分布式的功能都是很强悍的,在此我记录一下我的安装与配置过程。

1.安装就不用说了,到其官网下载安装包。我的系统是Mac OS,  所以我只说明在Mac OS上安装。下载安装包后,直接点击安装。安装后会在/Applications目录生成Ejabberd的目录,由于我下载的是Ejabberd-2.1.11,所以安装目录为:/Applications/ejabberd-2.1.11/

2.配置支持MySQL,打开/Applications/ejabberd-2.1.11/conf/ejabberd.cfg   并做如下修改

a. 注释

{auth_method, internal}.
注释后为
%%{auth_method, internal}.
b. 这句取消注释
{auth_method, odbc}.
c. 创建数据库ejabberd

d.创建表 ,  如果你的MySQL是5.5.3版本以前,那么编辑mysql.sql,   将SET table_type=InnoDB;改为SET default_storage_engine=InnoDB;

cd /Applications/ejabberd-2.1.11/lib/ejabberd-2.1.11/priv/sql
mysql -u root -p ejabberd < mysql.sql


d. 配置mySQL
%%
%% MySQL server:
%%
{odbc_server, {mysql, "localhost", "ejabberd", "root", "MySqlPassword"}}.

e.配置模块,加一个_odbc

{mod_last_odbc,     []},
{mod_offline_odbc,  []},
{mod_privacy_odbc,  []},
{mod_private_odbc,  []},
{mod_pubsub_odbc,   [ % requires mod_caps ...
{mod_roster_odbc,   []},
{mod_vcard_odbc,    []},

3. 开启ejabberd, 

cd /Applications/ejabberd-2.1.11/lib
./start


由于mysql中没有数据,所以我们注册一个帐号,命令如下:

./ejabberdctl register admin mes1.com 123456


现在到http://localhost:5280/admin/  去login

用户名:admin

密码:123456



Reference:http://iohq.net/index.php?title=Building_an_Ejabberd_Server_with_MySql