Ubuntu 17.04下安装ejabberd 17.04 及配置mysql
最近在弄im即时通讯,项目用到了ejabberd,特此记录。
1.官网下载最新版的
ejabberd-17.04
,也可以命令行中执行(这里我用的是现成的二进制包,也可以自己编译安装)
wget https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/17.04/ejabberd-17.04-linux-x86_64-installer.run -O ejabberd-17.04-linux-x86_64-installer.run
2.给二进制包添加可执行权限
sudo chmod +x ejabberd-17.04-linux-x86_64-installer.run
3.执行安装包
./ejabberd-17.04-linux-x86_64-installer.run
注意:
1.安装界面语言选择根据自己喜好即可
2.域名设置以自己喜好为主,如果不使用ip,记得配hosts
3.选择是否设置集群时,选择否
4.安装完成之后,就可以启动ejabberd服务器啦。
/opt/ejabberd-17.04/bin/ejabberdctl start
注意:ubuntu下启动ejabberd时会报一个无害提示:
bash: /opt/ejabberd-17.04/lib/linux-x86_64/libtinfo.so.5: no version information available (required by bash)
官网论坛说是没事,不影响使用。
5.注册一个管理员帐号:
/opt/ejabberd-17.04/bin/ejabberdctl register admin local.im.net 123456
6.访问后台管理页面:
http://local.im.net:5280/admin
即可以登录后台管理页面
7.如果需要接入mysql的话,请创建mysql表并修改配置文件中的默认访问验证模式
7.1 先创建一个ejabberd数据库:
mysql -uroot -p ...
>create database ejabberd;
>use ejabberd;
>source /opt/ejabberd-17.04/lib/ejabberd-17.04/priv/sql/mysql.sql
可以授权一个ejabberd用户访问该库
grant all privileges on ejabberd.* to ejabberd@'localhost' identified by 'ejabberd';
flush priviliges;
7.2修改配置文件
vi /opt/ejabberd-17.04/conf/ejabberd.yml
注释line 286行: ##auth_method: internal
打开line 307行:auth_method: sql
打开line 378-387:
378 ## MySQL server:
379 ##
380 sql_type: mysql
381 sql_server: "localhost"
382 sql_database: "ejabberd"
383 sql_username: "ejabberd"
384 sql_password: "ejabberd"
385 ##
386 ## If you want to specify the port:
387 sql_port: 3306
进入line 697添加:
697 mod_mam:
698 default: always
699 db_type: sql
7.3 重启ejabberd
/opt/ejabberd-17.04/bin/ejabberdctl stop
/opt/ejabberd-17.04/bin/ejabberdctl start
7.4 授权注册一个mysql里的管理员账户
/opt/ejabberd-17.04/bin/ejabberdctl register admin local.im.net 123456
即可使用新的帐号登录后台,进行管理。
客户端自己可以任意选用,比如converse.js,strophe.js等等。
end