ejabberd-learning

本文总结了ejabberd即时通讯服务器的部署经验,包括解决启动错误、依赖库缺失、配置调整、域名解析及行为回调实现等问题,特别强调了SSL证书、Makefile配置、Redis集成和版本更新等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建ejabberd运行环境总结

1、ejabberd 启动报错,Failed to read /data/ssl_gzemt/pro/dh2048.pem: no such file or directory
reason:本地根目录下无这个pem  -------------- > solution:create dir and file

2.在测试环境中慎用make clean  一般直接make 再ejabberdctrl live 即可

3.[error] failed to load NIF /home/im/imserver/release/ejabberd/lib/iconv-1.0.7/priv/lib/iconv: Failed to load NIF library /home/im/imserver/release/ejabberd/lib/iconv-1.0.7/priv/lib/iconv: 'libiconv.so.2: cannot open shared object file: No such file or directory'
reason:本地没有这个依赖库
solution:https://ftp.gnu.org/pub/gnu/libiconv/ 下载lib-115这个 如果新机器可能没有gcc (yum install gcc)
root/sudo权限
./configure --prefix=/usr/local
sudo make
sudo make install

4.[critical] failed to start application 'eredis': {{"no such file or "eredis.app"}}
reason:deps出错
solution:make clean ./autogen -> ./configure --enable-redis make

5.首次搭建需要配置Makefile # prefix = /usr/local->prefix = `pwd`, make copy-files

6.域名解析 ejabberd.yml中host配置 /etc/hosts中加host

7.behavior -> ejabberd_config 实现callback otp_type

8.redis -> redis supvisor 重启-> ejabberd_redis
https://blog.youkuaiyun.com/ruanhao1203/article/details/79139496
mod_redis中,拿token要先执行ejabberd_redis q方法连接redis服务器,连接成功了才去get

9.release包中,更新了版本号要,要remote console去reload一下,然后再ejabberd_config:get_option()

10.cp -rf ebin/* lib/ejabberd-18.03.21/ebin/

cp -rf deps/xmpp/ebin/* lib/xmpp-1.1.20/ebin/

11.

添加依赖
1、添加路径到rebar.config
{A, ".*", {git, "B", {tag, "C"}}} ->

A 到.app文件下找,或者在makefile下找projectname
B github clone地址
C 版本号

2、make clean
3、make拉取

12.ejabberd中的mnesia想要修改表结构并且兼容之前的数据,在transfrom方法中,用修改过的hrl文件来接受参数无效,会出现functioncase的错误,所以只需用一个变量来存即可,并且返回的是一个新的record

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值