IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lancer script shell depuis page PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut Lancer script shell depuis page PHP
    Bonjour à tous,

    Je voudrais depuis une page web lancer un script shell

    Mon script LectureCV.sh :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/bash
    cardpeek  -r "pcsc://Identive CLOUD 2700 R Smart Card Reader [CCID Interface] (15427826194951) 00 00" -e "card.connect(1) card.connect(dofile('vitale_2.lua')) card.disconnect(ui.save_view('/var/www/html/Fichier_client.xml')); ui.exit()"
    Le script me permet d'appeler cardpeek, de lire la carte inséré ensuite d'extraire les données en .xml et de quitter le programme

    J'ai essayé pas mal de code pour lancer mon .sh voici quelques codes utilisés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = shell_exec("./LectureCV.sh")or die ('pasbon');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        $old_path = getcwd();
    chdir('/var/www/html/');
    $output = shell_exec('./LectureCV.sh var1 var2');
    chdir($old_path);
    echo "<pre>$output</pre>";
    Si je lance mon fichier .php depuis le terminal pas de soucis cela fonctionne
    Mais en aucun cas sur ma page web..

    De plus j'ai essayé de mettre dans le fichier sudoers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www-data ALL=(ALL) NOPASSWD:ALL
    De même ne marche pas

    Mes fichiers sont en 777 et des droits www-data
    Auriez vous une idée pour résoudre mon problème ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut
    UP

    EDIT: Voici l'erreur que je trouve quand je fais référence à mon fichier .php depuis le navigateur :

    (cardpeek:3812): Gtk-WARNING **: cannot open display:

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est visiblement un problème de droit Linux sur le serveur X pour l'utilisateur qui fait tourner PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut
    Je reviens sur le problème

    Car je n'ai pas été clair sur mon projet ( si vous m'avez suivi sur ma borne de commande c'est toujours le même sujet)

    Je dispose d'un pc sous wamp et d'un Raspberry

    Mon pc fait donc tourner un serveur web

    Sur mon Raspberry j'ai un logiciel qui est cardpeek (lecture carte vitale ), j'ai créé un script shell pour le lancer avec des paramètres déja définis (Lecture carte vitale + récupération du fichier xml)

    Je voudrais quand quelqu'un touche la borne pour la déverrouiller, que ma page web exécute mon script qui est sur mon raspberry

    Est-ce possible ?

    J'ai vu les commandes :
    -shell_exec()
    -exec()

    Mais je ne sais pas comment faire appel à mon script qui est sur mon RPI
    J'ai également monter un dossier de partage pour essai mais non

    Merci d'avance

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut
    Alors j'ai avancé mais toujours le même problème cité plus haut

    Voici mon php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
     include('Net/SSH2.php');
       $ssh = new Net_SSH2('10.0.0.6');
       $ssh->login('root', 'Supp0rt123') or die("Login failed");
       echo $ssh->exec('/home/pi/Bureau/LectureCV');;
    ?>
    J'ai vu sur un forum d'inclure des fichiers => https://stackoverflow.com/questions/...rver-using-php
    Voir le post de Alireza Fallah

    Donc maintenant voici mon erreur :

    cardpeek: aucun processus trouvé Unable to init server: Impossible de se connecter : Connexion refusée (cardpeek:9659): Gtk-WARNING **: cannot open display:

    Comme m'avait dit sabotage c'est un problème de droit... Mais comment le résoudre ?

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    en donnant tout les droit à l'utilisateur et essayant si ça marche.
    Si oui alors tu réduit petit à petit les droits jusqu'à strict nécessaire pour le fonctionnement sinon c'est que le souci est ailleurs.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.6] Récupérer fichier "uploadé" pour l'envoyer par mail
    Par Gsdesign dans le forum Langage
    Réponses: 4
    Dernier message: 18/10/2015, 03h05
  2. Réponses: 8
    Dernier message: 10/10/2008, 20h46
  3. Réponses: 7
    Dernier message: 14/02/2006, 12h51
  4. Réponses: 2
    Dernier message: 20/08/2004, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo