如何从PHP(Apache)调用ejabberdctl

时间:2010-03-07 07:17:07

标签: linux path ejabberd

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

我的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文件就可以了。

帮助!

1 个答案:

答案 0 :(得分:1)

事实证明这是一个cookie(Erlang cookie)问题。有关答案,请参阅ejabberdctl does not work from PHP