2

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);

次のように /etc/sudoers に ejabberdctl も追加しました。

# 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 ファイルを実行すると動作します。

ヘルプ!

4

1 に答える 1

1

これはCookie(Erlang cookie)の問題であることが判明しました。答えについては、ejabberdctlがPHPから機能しないを参照してください

于 2010-04-11T06:14:22.183 に答える