You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ejabberd启用mod_ecaptcha模块后崩溃问题求助

Ejabberd启用mod_ecaptcha模块后崩溃问题求助

我尝试在ejabberd-contrib里安装新的mod_ecaptcha模块,但启用后ejabberd直接崩溃了,想请大家帮忙排查下原因。

我的环境信息

  • ejabberd版本:23.01
  • Erlang版本:25.2.3

已执行的操作步骤

  1. 先通过ejabberdctl modules_update_specs启用ejabberd-contrib
  2. 安装并重新编译mod_ecaptcha:
    • 执行ejabberdctl module_install mod_ecaptcha
    • 手动编译依赖的NIF部分:make -C .ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/deps/ecaptcha/c_src
    • 执行ejabberdctl module_upgrade mod_ecaptcha
    • 编译过程没有报错,不过一开始因为缺少依赖,我额外安装了erlang-dev(命令:apt install erlang-dev)
  3. 配置文件的相关设置:
    captcha_cmd: mod_ecaptcha
    captcha_url: http://myjabber:5280/captcha
    listen:
    -
      port: 5280
      module: ejabberd_http
      request_handlers:
        /captcha: ejabberd_captcha
    modules:
      mod_ecaptcha: {}
    

出现的错误情况

启动ejabberd后服务直接崩溃,error.log里的关键错误如下:

2023-06-19 19:59:11.892726+03:00 [error]
<0.757.0>@proc_lib:crash_report/4:539 CRASH REPORT: crasher:
initial call: ejabberd_captcha:init/1
pid: <0.757.0>
registered_name: []
exception error: undefined function ecaptcha_nif:rand_size/0
in function ecaptcha:pixels/2 (/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/deps/ecaptcha/src/ecaptcha.erl,
line 63)
in call from ecaptcha:img/3 (/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/deps/ecaptcha/src/ecaptcha.erl,
line 107)
in call from mod_ecaptcha:create_image/1 (/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/src/mod_ecaptcha.erl,
line 78)
in call from ejabberd_captcha:check_captcha_setup/0 (ejabberd_captcha.erl, line 573)
in call from ejabberd_captcha:init/1 (ejabberd_captcha.erl, line 294)
in call from gen_server:init_it/2 (gen_server.erl, line 851)
in call from gen_server:init_it/6 (gen_server.erl, line 814)

还有启动失败的critical日志:

2023-06-19 19:59:11.925067+03:00 [critical] <0.123.0>@ejabberd_app:start/2:68 Failed to start ejabberd
application: {error,
{shutdown,
{failed_to_start_child,
ejabberd_captcha,
{undef,
[{ecaptcha_nif,rand_size,[],[]},
{ecaptcha,pixels,2,
[{file,
"/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/deps/ecaptcha/src/ecaptcha.erl"},
{line,63}]},
{ecaptcha,img,3,
[{file,
"/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/deps/ecaptcha/src/ecaptcha.erl"},
{line,107}]},
{mod_ecaptcha,create_image,1,
[{file,
"/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_ecaptcha/src/mod_ecaptcha.erl"},
{line,78}]},
{ejabberd_captcha,
check_captcha_setup,0,
[{file,"ejabberd_captcha.erl"},
{line,573}]},
{ejabberd_captcha,init,1,
[{file,"ejabberd_captcha.erl"},
{line,294}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},
{line,851}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},
{line,814}]}]}}}}

麻烦各位帮忙看看这个问题该怎么解决?

备注:内容来源于stack exchange,提问作者saxad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:03:14