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 exe en php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut lancer exe en php
    Bonjour,

    Je développe un site web en Php (4 ou 5 pas encore défini).
    Je dois lancer un ".exe", stocké sur le serveur, développé (depuis Windows) en Fortan.

    Mon serveur doit-il être obligatoirement un serveur windows (ou un serveur linux peut aussi gérer cela) ?

    A quoi dois-je faire attention ??

    Est-ce bien la fonction exec qui correspond ??

    Merci de votre aide car je suis totalement perdue !!

  2. #2
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    alors je vais essayer de répondre dans l'ordre

    Mon serveur doit-il être obligatoirement un serveur windows
    > oui un .exe ne peut être utiliser sur un serveur linux.

    A quoi dois-je faire attention
    > a ce que tu veux en faire, si 50 personnes ce connecte et peuvent actionner ton .exe je suis pas sur que ton serveur tienne le coup ni ton applicatif.

    Est-ce bien la fonction exec qui correspond
    > oui

    maintenant la petite question, ton appli est sur ton serveur, donc le fait de faire exec(tonappli.exe) va exécuté ton prog sur le serveur pas chez ton client on est bien d'accord?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    maintenant la petite question, ton appli est sur ton serveur, donc le fait de faire exec(tonappli.exe) va exécuté ton prog sur le serveur pas chez ton client on est bien d'accord?
    Oui oui, on est bien d'accord


    A quoi dois-je faire attention
    > a ce que tu veux en faire, si 50 personnes ce connecte et peuvent actionner ton .exe je suis pas sur que ton serveur tienne le coup ni ton applicatif.
    Le ".exe" peut-il être appelé simultanément par plusieurs utilisateurs (comme un script php en somme) ? Ou les appels sont traités les uns après les autres ??

    Je ne comprends pas trop pourquoi le .exe utilise plus/trop de ressource et pourquoi mon applicatif (php ?) ne tiendrait pas le coup ?

  4. #4
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    Le ".exe" peut-il être appelé simultanément par plusieurs utilisateurs (comme un script php en somme) ?
    ba oui puisque c'est ton script php qui fait le exec donc si 50 personnes visite la page effectuant ton exec tu va appeler 50 fois ton programmes.

    Je ne comprends pas trop pourquoi le .exe utilise plus/trop de ressource et pourquoi mon applicatif (php ?) ne tiendrait pas le coup ?
    je ne parle pas de php mais plus de ton serveur et de ton applicatif. le faite de la lancer plusieurs fois va forcément avoir une incidence sur la charge machine. après ça dépend du traitement que fait ton executable.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    Mon exe fait un calcul en fonction de variable récupérées plutôt par des formulaire html.
    Je n'ai pas envie de redévelopper en php ce que fait déjà le .exe (maintenance etc...). Je ne vois pas de solution plus simple.

    Double question (à mon sauveur ^^):

    1 Il y a peu/pas d'hebergeur connus (1and1, ovh) qui proposent windows+php, est-ce normal ?

    2 comment passer mes variables (stockés en session) à l'exécutable (par fichier texte temporaire ?) ?

    Merci

  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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    1 Il y a peu/pas d'hebergeur connus (1and1, ovh) qui proposent windows+php, est-ce normal ?

    ouep pour des raison de cout, de maintenance, de fonctionnement etc ....
    windows reste assez présent dans l'hébergement via IIS pour asp mais php nop.

    2 comment passer mes variables (stockés en session) à l'exécutable (par fichier texte temporaire ?) ?
    si ton programme prend en appel des paramètres exec("tonprog.exe ".$_session["tavariable1"]." ".$_session["variable2"] ....);

    après c'est sur que si ton prog ne peut pas prendre de variable c'est fichier texte ....

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    Merci beaucoup, ça commence à bien s'éclaircir dans ma tête

    Dernières petites questions:

    - Un programme en ".exe" tournera/consommera plus ou moins de ressources serveurs qu'un script en php qui réalise exactement les mêmes opérations (calculs mathématiques "assez" complexes) ?

    - Si je compile mon programme Fortran sous Linux (ubuntu) celui ci pourra être appelé simplement depuis mon serveur Unix avec Php puis exec ?

    - Comment gérer l'envoi de paramètres par fichier texte afin d'etre sur que le exe lise le bon fichier de l'utilisateur (si plusieurs utilisateurs en parrallèles...). Utiliser un nom différent du fichier lié à la session ?

  8. #8
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    Citation Envoyé par Mandarine Voir le message
    - Un programme en ".exe" tournera/consommera plus ou moins de ressources serveurs qu'un script en php qui réalise exactement les mêmes opérations (calculs mathématiques "assez" complexes) ?
    le soucis c'est que si tu fait ça en php faudra faire de l'ajax en asynchrone si je me goure pas sinon tu ne pourra plus naviguer sur ton site tant que le script ne sera pas fini à moins que l'on puisse lancer un script php avec exec() j'avoue là je suis pas très au courant de la chose.


    - Si je compile mon programme Fortran sous Linux (ubuntu) celui ci pourra être appelé simplement depuis mon serveur Unix avec Php puis exec ?
    si tu compile un bash oui mais un .exec non c'est purement windows ça.

    - Comment gérer l'envoi de paramètres par fichier texte afin d'etre sur que le exe lise le bon fichier de l'utilisateur (si plusieurs utilisateurs en parrallèles...). Utiliser un nom différent du fichier lié à la session ?
    un nom spécifique au fichier texte en fonction de la personne
    et si c'est toi qui créé le prog tu peux faire en sorte de lui passer en paramètre le nom du fichier en question. par ce que les variable de session ne sont visible qu'en php

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    Je n'ai pas besoin que l'utilisateur puisse naviguer pendant l'execution du "exe". Je veux juste que le temps d'attente soit le plus court possible.

    1 C'est pour cela que je veux savoir si php est plus optimisé que le .exe pour faire le calcul (le temps d'attente sera-t-il réduit ?) ?

    2 Et comment est géré le .exe par le serveur lors d'appel simultané par plusieurs utilisateurs ?
    Le serveur peut-il lancer plusieurs fois le .exe (comme un script php) ou les .exe sont lancés les uns après les autres ?

  10. #10
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    C'est pour cela que je veux savoir si php est plus optimisé que le .exe pour faire le calcul (le temps d'attente sera-t-il réduit ?) ?
    le .exe est beaucoup mieux.

    Et comment est géré le .exe par le serveur lors d'appel simultané par plusieurs utilisateurs
    Chaque appel lance un processus indépendant des autres.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    Je viens de compiler sous linux (ubuntu) un porgramme fortran qui créé un fichier txt. Lorsque je l'execute sous linux (en double cliquant dessus) tout marche bien et le fichier txt se créé.

    Une fois envoyé sur mon serveur (depuis Windows via FTP) et appelé via un exec, rien ne se produit.

    J'ai vérifié:
    safe_mode: off
    droit 777 de tout (dossier et fichier)
    fonction exec autorisée (1and1 mutualisé)

    Des pistes ??

  12. #12
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    Des pistes ??
    du code??

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    Code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $r=exec('makef');
    echo $r;
    ?>
    makef est le fichier compilé qui doit créer le .txt.
    makef est situé dans le même dossier que le script php appelant.
    Le echo n'affiche rien non plus.

  14. #14
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    la fonction exec exécute une commande pas un programme.

    exec("./makef"); ça donne quoi?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 97
    Points : 119
    Points
    119
    Par défaut
    Est-ce que le dossier possède les droits en écriture pour l'utilisateur web ?
    normalement sur ubuntu c'est www-data

  16. #16
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    Citation Envoyé par rfufu Voir le message
    Est-ce que le dossier possède les droits en écriture pour l'utilisateur web ?
    normalement sur ubuntu c'est www-data
    Citation Envoyé par Mandarine
    droit 777 de tout (dossier et fichier)
    je pense qu'on prendre ça pour un oui.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    la fonction exec exécute une commande pas un programme.
    Comment faire pour exécuter un programme alors ??

    Je ne comprends pas la différence entre exec('makef') et exec("./makef") que tu me conseilles. Pour moi les 2 appellent le programme makef, non ?


    En fait cela marche quand je compile le code sur le serveur et que je l'apelle via Cependant je ne peux pas compiler tous les exe sur le serveurs, donc selon pourquoi ça ne marche que quand c'est compilé sur le serveur ?

    J'en pers mon latin (mon linux plutot)

  18. #18
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    exec() exécute une command bash sous linux pour lancer un programme tu es d'accord qu'il faut utiliser ./monprog d'où ma remarque d'hier.

    ensuite, il faut les compiler sur le serveur pour avoir un environnement système cohérent.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Points : 53
    Points
    53
    Par défaut
    Problème résolu !

    ensuite, il faut les compiler sur le serveur pour avoir un environnement système cohérent.
    C'était ça. Vu que je ne pouvais pas compiler sur le serveur en question, j'ai compilé en local en incluant les libraires.

    (de plus mon FTP n'était pas en mode binaire...).

    Merci !!

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

Discussions similaires

  1. [Mail] Lancer Outlook en PHP avec les diff entêtes
    Par heider dans le forum Langage
    Réponses: 7
    Dernier message: 02/01/2011, 05h10
  2. [Système] lancer un exe en php
    Par MayOL69bg dans le forum Langage
    Réponses: 5
    Dernier message: 23/04/2007, 11h24
  3. Réponses: 1
    Dernier message: 01/03/2006, 11h27
  4. Réponses: 4
    Dernier message: 14/12/2005, 12h16
  5. [Système] Lancer .exe
    Par licorne dans le forum Langage
    Réponses: 2
    Dernier message: 14/09/2005, 11h10

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