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

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?

5 réponses

  1. hello
    préciser le chemin
    $output=shell_exec('/chemin/wireshark 2>&1');
    0
    1. 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
    2. Bonjour,
      y aurai pas un soucis de droit ?
      0
    3. Je suis en root pourtant quand j'appelle la commande en PHP
      0
    4. as-tu essayé ça ?
      $output=shell_exec('/usr/sbin/wireshark 2>&1');
      0
    5. Oui et /usr/sbin me renvoi le permission denied :(
      0
  2. 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
    1. 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
      1. 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