Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4998740
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: LINUX

2014-12-21 12:31:07

使用Ejabberd搭建IM环境

下载ejabberd
wget 

执行下面命令安装ejabberd
gunzip ejabberd-2.1.2-linux-x86_64-installer.bin.gz
./ejabberd-2.1.2-linux-x86_64-installer.bin
按提示安装ejabberd
配置ejabberd支持mysql
填加mysql用户以及数据库
mysql:>create database ejabberd
mysql:>grant all privileges on ejabberd.* to ejabberd@’127.0.0.1′ IDENTIFIED BY ’ejabberd’;
mysql:>grant all privileges on ejabberd.* to  IDENTIFIED BY ’ejabberd’;
建立ejabberd数据库中的表
mysql:>source /usr/local/ejabberd/lib/ejabberd-2.1.2/priv/odbc/mysql.sql;
更改/usr/local/ejabberd/conf/ejabberd.cfg文件
注释掉下面这行
{auth_method, internal}.
加入下面的两行
{auth_method, odbc}.
{odbc_server, {mysql, ”localhost”, ”ejabberd”, ”ejabberd”, ”ejabberd”}}.
把下面的注释去掉
{odbc_pool_size, 20}.
{odbc_keepalive_interval,30}.
如果不加入以上两行的话,MySQL中的连接池就会在sleep 时间超过wait_timeout的限制后被断开,导致ejabberd不能认证用户。查看
ejabberd.log会出现以下错误:
=ERROR REPORT==== 2010-03-02 10:44:09 ===

E(<0.426.0>:ejabberd_odbc:491) : mysql_conn: Received unknown signal, exiting : {mysql_recv,

<0.427.0>,

closed,

normal}
更改模块定义
MySQL:
- Change mod_last to mod_last_odbc to store the last seen date in MySQL.
- Change mod_offline to mod_offline_odbc to store offline messages in MySQL.
- Change mod_roster to mod_roster_odbc to store contact lists in MySQL.
- Change mod_vcard to mod_vcard_odbc to store user description in MySQL.

启动ejabberd
cd /usr/local/ejabberd/bin
./ejabberdctl start

进入WebAdmin后台的 地址为:

用户名:admin 密码:password

以上测试成功



EjabberdMysql和 PostgreSQL提供天然的扩展支持,下文将简要说下在linux和windows下对Mysql的 支持.

一,MySQL准备工作

1,添加一个用户

Sql代码
  1. mysqlGRANT ALL ON ejabberd.* TO 'ejabberd'@'' IDENTIFIED BY '';  
  2.   
  3.   
  4. mysql> flush privileges;  

2,创建Ejabberd数据库

Sql代码
  1. mysqlCREATE DATABASE ejabberd;  

3,获取Ejabberd数据库脚本

Sql代码
  1. wget ejabberd/trunk/src/odbc/mysql.sql  

4,导入数据库

Sql代码
  1. mysql>use ejabberd  
  2.   
  3. mysql> source /home/mysql.sql -p  

5,检查脚本

Sql代码
  1. echo "show tables;" | mysql -D ejabberd -uroot -p  
  2. Enter password:  
  3. Tables_in_ejabberd  
  4. last  
  5. privacy_default_list  
  6. privacy_list  
  7. privacy_list_data  
  8. private_storage  
  9. rostergroups  
  10. rosterusers  
  11. spool  
  12. users  
  13. vcard  
  14. vcard_search  

二,安装编译Ejabberd

a,Linux下安装

编译安装Ejabberd

Sql代码
  1. tar   zxvf ejabberd-2.1.1.tar.gz  
  2.   
  3. cd  ejabberd-2.1.1/src  
  4.   
  5. ./configure --prefix==/usr/local/ejabberd --enable-odbc  
  6.   
  7. make&&make install  
阅读(2123) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~