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

david -  
 david -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    préciser le chemin
    $output=shell_exec('/chemin/wireshark 2>&1');
    0
    1. david
       
      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. gonzo47 Messages postés 192 Statut Membre 15
       
      Bonjour,
      y aurai pas un soucis de droit ?
      0
    3. david
       
      Je suis en root pourtant quand j'appelle la commande en PHP
      0
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      as-tu essayé ça ?
      $output=shell_exec('/usr/sbin/wireshark 2>&1');
      0
    5. david
       
      Oui et /usr/sbin me renvoi le permission denied :(
      0
  2. david
     
    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
  3. david
     
    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
  4. david
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question