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 un executable en PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut Lancer un executable en PHP
    Salut,
    Je voudrais faire un lien dans mon script pour lancer une application, mais je n'ai aucune idée de comment faire.
    Et comment savoir si une application est lancée ? Ou si le lancement a échoué ? Merci.

    PS : Cet executable est un fichier qui est dans mon FTP, et le serveur est sous Debian.

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    avec exec()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    Donc je fais pas exemple : exec('dossier1/dossier2/machin.exe') ?
    J'ai essayé, mais j'ai pas l'impression que ça marche...
    Enfin, comment savoir si l'executable est bien ouvert ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Si tu tentes de lancer un "machin.exe" sous Debian, il risque d'y avoir un soucis.

    A priori lorsque tu lances un processus via exec(), la fonction attend le résultat généré par ce processus. Si le processus ne renvoie pas de résultat au bout du temps maximum d'exécution de ton script PHP (généralement 30sec) celui ci plante (enfin pas vraiment, mais c'est l'impression qu'il donne du côté utilisateur).

    Par contre je sais pas si ça envoie un signal de fin au processus lancé via exec().
    Pourfendeur de singletons en croisade

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    Euhm, OK, en fait maintenant j'ai un fichier spécial pour Linux.
    Quand je vais sur SSH, si je vais à mon dossier où est mon fichier que je veux lancer avec "cd", et que je tape "exec monfichier" il dit : -bash: exec: fichier: not found

    Comment faire ?

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    exec() est une fonction PHP.
    si tu tapes exec dans bash, forcemment il ne connait pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    heu... exec() est une fonction PHP.

    Si tu accèdes à ton serveur via ssh tu n'es plus dans un script.

    à priori si ton fichier est executable :
    s'il ne l'est pas, soit passer par l'interpréteur lié au langage dans lequel est écrit ton programme.
    Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    php monFichier.php
    python monFichier.py
    ruby monFichier.rb
    Pourfendeur de singletons en croisade

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    Et si il n'a pas d'extensions... et que je ne sais pas comment il est fait (fichier Linux ?)

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    alors tu peux essayer ça :

    qui affichera les premières lignes du fichier.

    Si tu obtiens des symboles cabalistiques, c'est probablement un fichier compilé. Auquel cas tu peux le rendre exécutable

    Dans le cas ou tu obtiens un texte lisible qui commence par quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/quelque_chose
    ou
    #!/usr/bin/quelque_chose
    tu peux le rendre exécutable par la même opération que précédemment.

    Sinon, c'est un script non identifié, poste nous le résultat de la commande head.
    Pourfendeur de singletons en croisade

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Points : 42
    Points
    42
    Par défaut
    Mon fichier est binaire je crois :
    ÀÀ ¼'èPøöèP1Ûø[tëvèsPø;t
    DØCuØ1ÛD$4$èCæÿÿëèøRt

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    eh bah dans ce cas,
    qui ne sera à faire qu'une fois, pour lui donner l'autorisation d'exécution. Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ./monFichier 
    ou
    /le/chemin/vers/monFichier
    pour lancer l'exécution.
    Pourfendeur de singletons en croisade

Discussions similaires

  1. Exécution script php
    Par devmat dans le forum Linux
    Réponses: 11
    Dernier message: 22/04/2007, 11h14
  2. Lancer l'exécution d'un autre programme
    Par Neitsa dans le forum Linux
    Réponses: 3
    Dernier message: 21/05/2005, 23h39
  3. Réponses: 5
    Dernier message: 15/07/2004, 23h28
  4. Réponses: 2
    Dernier message: 22/04/2004, 13h28
  5. Lancer un executable à partir d'un exe
    Par Invité dans le forum MFC
    Réponses: 4
    Dernier message: 26/01/2004, 12h55

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