2010-03-07 5 views
2

J'essaie d'appeler ejabberdctl à partir de PHP mais je continue d'obtenir un code d'erreur de 3 (Echec de la connexion RPC au nœud ejabberd @ localhost: nodedown).Comment appeler ejabberdctl à partir de PHP (Apache)

Mon script PHP contient le code suivant pour ajouter des amis:

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

J'ai également ajouté ejabberdctl dans/etc/sudoers comme ceci:

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

J'ai également ajouté le répertoire bin ejabberd à/etc/environment, comme ceci:

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

Chaque fois que je lance le script PHP $ re tCode (le code de retour exec) renvoie 3, mais si je cours le même fichier php à partir de la ligne de commande, cela fonctionne.

Aide!

+0

Mise à jour: en remplaçant « exec » par « système » que je reçois la sortie suivante « Échec de la connexion RPC au nœud ejabberd @ localhost: nodedown » Bien que si je lance « l'état de ejabberdctl » il montre le serveur est en cours d'exécution – Adil

+0

Je peux voir dans les journaux ejabberd le message d'erreur suivant: "tentative de connexion du noeud non autorisé 'ejabberd-ctl @ localhost'" – Adil

Répondre

Questions connexes