linux - 如何从 PHP (Apache) 调用 ejabberdctl

标签 linux path ejabberd

我正在尝试从 PHP 调用 ejabberdctl,但我一直收到错误代码 3(与节点 ejabberd@localhost 的 RPC 连接失败:nodedown)。

我的 PHP 脚本包含以下添加好友的代码:

exec('sudo /opt/ejabberd-2.1.2/bin/ejabberdctl add_rosteritem adil.baig40122310029739 godudu.com chburaska0822431111022397 godudu.com chburaska0822431111022397 Friends both', $output, $retCode);

exec('sudo /opt/ejabberd-2.1.2/bin/ejabberdctl add_rosteritem chburaska0822431111022397 godudu.com adil.baig40122310029739 godudu.com adil.baig40122310029739 Friends both', $output, $retCode);

我还像这样将 ejabberdctl 添加到/etc/sudoers 中:

# Custom entry for ejabberdctl, so it can be used via PHP
www-data ALL= NOPASSWD: /opt/ejabberd-2.1.2/bin/ejabberdctl

我还将 ejabberd bin 目录添加到/etc/environment,如下所示:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/ejabberd-2.1.2/bin"
source /etc/environment

每次我运行 PHP 脚本 $retCode(exec 返回代码)都会返回 3,但是如果我从命令行运行相同的 php 文件,它会起作用。

帮助!

最佳答案

原来这是一个cookie(Erlang cookie)问题。答案参见 ejabberdctl does not work from PHP

关于linux - 如何从 PHP (Apache) 调用 ejabberdctl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395486/

相关文章:

linux - 从 linux 机器获取特定的内存和 cpu 值

linux - opkg.conf 文件 : src vs src/gz

c - 如何从C中的完整路径获取文件的目录

java - 在java代码中将Windows风格的路径转换为unix路径

linux - 使用移动窗口 bash 脚本的中值

javascript - Node.js:从该应用程序安装的 Node 模块中获取应用程序文件夹的路径

ejabberd 连接到管理员 "missing server"

ubuntu - 有什么办法强制停止 eJabberd 吗?

android - 独立的推送通知服务器实现

python - 我如何从 Linux 上的 python 中的进程 ID 获取用户名?