Exécution commande, pas de retour [Résolu]

Exécution commande, pas de retour [Résolu] - PHP - Programmation

Marsh Posté le 12-12-2007 à 15:03:02    

Bonjour,
j'ai un soucis avec l'exécution de commandes via PHP. Enfin avec une seule commande...
 
En fait nous avons besoin d'une toute petite interface d'ajout/suppression de sous domaines, rien de bien compliqué.
Pour ce faire, j'ai mis au point une petite appli qui modifie les fichiers de conf et restart/reload les services qu'il faut.
 
Tout fonctionne à merveille, cependant, et par sécurité, j'aimerais vérifier le fichier de conf généré pour le nom de domaine avant de lancer un reload sur bind.
 
Donc, quoi de plus logique que d'utiliser la commande named-checkzone?
Sauf que je ne parvient pas à avoir quelque chose en sortie.
Pas même une erreur...
 
Niveau config PHP, rien ne bloque l'affichage des erreurs. Ca ne peut donc pas venir de là.
 
J'ai testé la commande (ci-dessous) dans un shell en utilisateur simple, ça fonctionne très bien.
 
Voici un exemple simplifier et qui ne donne rien :
 

Code :
  1. <?php
  2.  
  3. // $domName est définit autrement en réalité, mais c'est pour l'exemple
  4. // et j'ai bien vérifié, elle n'est pas vide. Elle contient bien le nom
  5. // de domaine concerné
  6. $domName = 'nostalgeek.info';
  7. $controlCMD = 'named-checkzone '.$domName.' db.'.$domName;
  8.  
  9. // Ne renvoit / n'affiche rien :
  10. echo system($controlCMD);
  11.  
  12. // Ne renvoit / n'affiche rien :
  13. echo shell_exec($controlCMD);
  14.     
  15. // Et ceci fonctionne à merveille :
  16. echo system('ls');
  17.  
  18. ?>


 
Désolé si ma question vous parait stupide, mais je ne suis pas familier de l'exécution de commandes via PHP.
Pour tout vous dire, je n'aime pas beaucoup ça...
 
En vous remerciant.


Message édité par dwogsi le 12-12-2007 à 15:25:26

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 12-12-2007 à 15:03:02   

Reply

Marsh Posté le 12-12-2007 à 15:19:17    

named-checkzone est un outil installé dans un répertoire du chemin de recherche de l'utilisateur php/apache?
Rajoutes le chemin absolu vers l'exécutable named-checkzone et tu seras sur qu'il le trouve.
 
PS : Peut être aussi que c'est un utilitaire qui écrit dans le flux d'erreur et non pas dans le flux classique. Ca ne se voit que si on redirige ces flux vers un fichier.


Message édité par omega2 le 12-12-2007 à 15:20:12
Reply

Marsh Posté le 12-12-2007 à 15:24:46    

Bien joué, il est pas dans les chemins de recherche de www-data.
Donc avec /usr/sbin/named-checkzone ça marche mieux.
En fait je m'attendais à recevoir un message d'erreur style "command not found" pour ce genre de problème...
 
Me coucherai moins con ce soir. Merci en tout cas!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed