PHP et shell_exec, sh: can't open script.sh

Fermé
david - 23 août 2012 à 09:18
 david - 26 août 2012 à 16:46
Bonjour,

J'ai besoin d'utiliser du bash sur mon serveur et de lancer une commande, ironie du sort shell_exec fontionne pas:

<?php
    $output=shell_exec('wireshark 2>&1');
    echo '<pre>'.$output.'</pre>';
?>


donne en output:
sh: Can't open wireshark



Comment se fait-il que ça ne marche pas?



A voir également:

5 réponses

dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 5 630
23 août 2012 à 10:43
hello
préciser le chemin
$output=shell_exec('/chemin/wireshark 2>&1');
0
J'ai essayer; mais je tente ça mais ça ne marche pas non plus, j'ai donc testé autre chose en appelant directement usr/sbin et je tombe sur ça:
permission denied
0
gonzo47 Messages postés 186 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 24 octobre 2016 15
23 août 2012 à 12:23
Bonjour,
y aurai pas un soucis de droit ?
0
Je suis en root pourtant quand j'appelle la commande en PHP
0
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 5 630
23 août 2012 à 12:28
as-tu essayé ça ?
$output=shell_exec('/usr/sbin/wireshark 2>&1');
0
Oui et /usr/sbin me renvoi le permission denied :(
0
Re alors voila le résultat de la commande:

drwxr-sr-x 2 root root 16384 2012-08-16 20:56 /usr/sbin
-rwxr-sr-x 1 root root 29092 2009-10-12 17:47 /usr/sbin/wireshark



Les droits on l'air bon pourtant, mais php refuse de le lancer alors qu'en console ça merche.
0
J'ai ça maintenant:
Run it as root


Je rappelle que je suis bien en root, j'utilise le bash via une page php, la commande s'éxécute quand l'utilisateur appui sur un bouton.Ma page php appelant la commande bash est donc dans /var/www.

Un truc a faire que j'aurais oublier?
0
Bon alors j'ai rajouter un sudo devant /usr/sbin et ça ma enlever le "run it as root" le problème c'est que la commande ne fait rien non plus, voila mon fichier error.log peut-etre que ca vous parlera plus qu'a moi:

root@host-laptop:/var/www# tail /var/log/apache2/error.log
[Sun Aug 26 13:09:24 2012] [error] [client 127.0.0.1] PHP Fatal error:  Only variables can be passed by reference in /var/www/test/traitement.php on line 2, referer: http://127.0.0.1/test/discovery.php
[Sun Aug 26 13:17:09 2012] [error] [client 127.0.0.1] PHP Warning:  shell_exec() expects exactly 1 parameter, 2 given in /var/www/test/traitement.php on line 2, referer: http://127.0.0.1/test/discovery.php



Voila mon code traitement.php

<?php
$output = shell_exec("sudo /usr/sbin/macommande");
echo "<pre>$output</pre>";
?>



Une idée, c'est du chinois pour moi ça :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
??
0