2010-05-05 7 views
2

shell_exec():shell_exec() et exec() Ne pas afficher la sortie

Je fais un site PHP qui utilise une fonction shell_exec() comme ceci:

$file = "upload/" . $_FILES["file"]["name"]; 

$output = shell_exec("leaf $file"); 
echo "<pre>$output</pre>"; 

Lorsque la feuille est un programme qui est situé dans le même répertoire que mon script, mais quand j'ai essayé d'exécuter ce script sur le serveur, je n'ai rien reçu.


exec():

Si je tente en utilisant exec() comme ceci:

exec("sh " . getcwd() . "leaf -h", &$output); 
echo "<pre>"; 
print_r(&$output); 
echo "</pre>"; 

je suis arrivé ceci:

Array 
(
)

Si je fais la même chose, mais en utilisant echo au lieu de print_r, j'ai seulement ceci: Array

Que puis-je faire?

Répondre

2

Avez-vous essayé d'utiliser le chemin complet avec votre référence «feuille»?

$output = shell_exec("/var/local/leaf $file"); 
+0

Ouais, je l'ai déjà fait ceci: '$ output = shell_exec;', mais je n'ai rien trop ("sh" getcwd() "/ feuille $ file"..). –

+0

Pouvez-vous essayer d'utiliser un chemin statique et voir si cela change quelque chose? getcwd() obtiendrait probablement le CWD d'Apache qui est probablement différent de ce que vous pensez. Vous pouvez également consulter le journal des erreurs pour trouver des indices. – gurun8

+0

J'ai mis le chemin statique et je n'ai toujours rien. –