我使用的是最新的 Ejabberd 版本 18.12.1。我已启用 mod_http_upload 来上传文件,缩略图的默认配置为 false。但是,当我尝试将其设置为 true 时,服务器无法启动并出现错误:
[错误] <0.408.0>@gen_mod:module_error:574 模块 mod_http_upload 的选项“缩略图”值无效:true
根据各种文档和支持材料,我了解到我们需要使用 libgd 选项编译 ejabberd,以启用此功能。但是我不确定如何使用 libgd 启用/编译。哪个命令可以做到这一点。
在编译 Ejabberd 之前,我已经安装了所有必需的库,包括 gd 和 gd-devel。在编译时我也尝试了各种选项,--enable-graphics
但也没有帮助。
如能得到任何关于如何启用缩略图的帮助,我们将不胜感激。
答案1
看着你的问题,我使用该选项启用了该模块,并且也收到了该错误消息:
11:04:36.573 [warning] ejabberd is built without image converter support, option 'thumbnail' is ignored
11:04:36.573 [error] Invalid value for option 'thumbnail' of module mod_http_upload: true
11:04:36.573 [critical] ejabberd initialization was aborted because a module start failed.
查看 ejabberd 源代码,该要求实际上来自于这个 erlang 库:ejabberd/deps/eimp
查看 eimp 的 README,我决定安装这个包(我使用 Debian):libgd-dev,它还自动安装了其他类似libjpeg-dev、libpng-dev...
然后我重新编译了eimp:
cd ejabberd/deps/eimp
make clean
./configure
make
最后,我重新安装了 ejabberd:
cd ejabberd/
make
make install
现在,ejabberd 终于可以正确启动了缩略图:真实... 没有错误。我并没有在实践中测试该功能。
答案2
感谢 Badlop 的回复,并对回复延迟表示歉意。
实际上,我在 Centos 上尝试过这个,即使在解决了 libgd 依赖关系之后,它仍然会出现上面提到的 eimp 模块问题。因此,我最终切换到 ubuntu,在再次安装 ejabberd 及其所有依赖项后,错误消失了。
我能够使用“thumbnail: true”启动服务器,没有任何错误,并且能够发送文件。但是它仍然没有生成缩略图,日志中也没有错误。不知道我现在错过了什么。