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 :

[Système] Exécuter un programme Java en PHP


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 504
    Points
    504
    Par défaut [Système] Exécuter un programme Java en PHP
    Bonjour,

    J'ai une solution LAMP installée sur mon ordinateur avec Apache en version 2.
    J'ai fait un programme en java et j'aimerais pouvoir l'exécuter depuis un script php se trouvant sur mon serveur.
    J'ai bien vérifié que le safe_mode de php est à off et je suis déjà arrivé à éxecuter des binaires que j'avais écrits en C depuis php et cela a marché sans problème.

    Pour le programme en java, j'ai donc tenté de suivre la même démarche mais cela ne marche pas. Même une simple exécution de l'exécutable java pour avoir la version de java installée ne marche pas :

    <?php

    $retour = `java -version`;
    echo $retour;

    ?>
    Ceci ne renvoie rien du tout. Je me suis donc loggué en utilisateur sur lequel tourne Apache (www-data) et j'ai vérifié le PATH et le CLASSPATH et tout est bien rempli. J'ai tenté d'exécuter la commande java -version avec l'utilisateur www-data et cela marche normalement.

    Au final, cela doit venir des droits du compte utilisateur sur lequel tourne Apache ou d'un problème de configuration d'Apache à changer.

    Pour les droits de l'utilisateur www-data, j'ai ça :

    uid=33(www-data) gid=33(www-data) groupes=33(www-data)
    Je ne sais pas trop si cela peut expliquer le fait que le programme java ne puisse être exécuté (et si c'est le cas ce que je dois changer aux droits de www-data).
    Quelqu'un aurait une idée de ce que je peux faire ?


    Merci d'avance de votre aide.

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 869
    Points : 4 884
    Points
    4 884
    Par défaut
    Bonjour

    Es-tu sûr que l'exécutable java est accessible et exécutable par tous les utilisateurs ?
    A mon avis c'est tout simplement un problème de droits et/ou de localisation de l'exécutable.

    @++

  3. #3
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 504
    Points
    504
    Par défaut
    Dans le doute, j'ai mis tous les droits pour l'exécutable pour être sur.
    De plus, lorsque je me connecte en utilisateur www-data, j'arrive à exécuter la commande normalement et le résultat est correct.

    J'ai aussi tenté d'exécuter la commande en mettant le chemin absolu vers java : /usr/bin/java mais cela ne change rien.

    C'est que lorsque je tente d'exécuter la commande depuis php que j'ai ce problème.

  4. #4
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 504
    Points
    504
    Par défaut
    Peut-être que je devrais mettre ce sujet dans le forum PHP, il y aurait plus de chances que quelqu'un puisse m'aider non ?

    Un modérateur pourrait le déplacer, svp ?

    Merci.

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 869
    Points : 4 884
    Points
    4 884
    Par défaut
    Entendu, je m'en occupe.
    Sujet déplacé.

    @++

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    utilise la fonction exec(). Info: http://fr2.php.net/manual/fr/function.exec.php

    NB: L'appel se fera coté serveur, donc tu aura la version du java présent sur le serveur.

  7. #7
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 241
    Points
    8 241
    Par défaut
    il y a tout de même quelque chose de bizarre. j'ai essayé sur ma machine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    echo '<pre>';
    $last_line = system("/usr/local/jre1.5.0_06/bin/java", $retval);
     echo '
    </pre>
    <hr />La dernière ligne lue : ' . $last_line . '
    <hr />Valeur retournée : ' . $retval;
    ?>
    et j'ai java qui me donne son message d'aide mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     echo '<pre>';
     $last_line = system("/usr/local/jre1.5.0_06/bin/java -version", $retval);
      echo '
     </pre>
     <hr />La dernière ligne lue : ' . $last_line . '
     <hr />Valeur retournée : ' . $retval;
    ?>
    j'ai rien. je me suis alors dit que c'était à cause de l'argument alors j'ai essayé avec ls -l et ça m'a bien donné le contenu de mon répertoire. c'est comme si java refusait de donner sa version via php. j'ai également essayé java -version avec l'utilisateur www-data dans le shell et java m'a donné sa version. c'est vraiment bizarre.

  8. #8
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Ce n'est pas plutot java --version ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par Le_coyote
    il y a tout de même quelque chose de bizarre. j'ai essayé sur ma machine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    echo '<pre>';
    $last_line = system("/usr/local/jre1.5.0_06/bin/java", $retval);
     echo '
    </pre>
    <hr />La dernière ligne lue : ' . $last_line . '
    <hr />Valeur retournée : ' . $retval;
    ?>
    et j'ai java qui me donne son message d'aide mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     echo '<pre>';
     $last_line = system("/usr/local/jre1.5.0_06/bin/java -version", $retval);
      echo '
     </pre>
     <hr />La dernière ligne lue : ' . $last_line . '
     <hr />Valeur retournée : ' . $retval;
    ?>
    j'ai rien. je me suis alors dit que c'était à cause de l'argument alors j'ai essayé avec ls -l et ça m'a bien donné le contenu de mon répertoire. c'est comme si java refusait de donner sa version via php. j'ai également essayé java -version avec l'utilisateur www-data dans le shell et java m'a donné sa version. c'est vraiment bizarre.

    Chez moi ça fait pareil, la première version renvoie bien l'aide et la second avec l'option -version ne renvoie rien.
    En fait on dirait qu'il n'accepte pas les arguments plutôt.
    Ou peut être faut il les passer d'une autre façon, je vais continuer à chercher mais c'est vraiment bizarre.

    NB pour GLDavid : merci d'avoir déplacé le message.

  10. #10
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par Yobs
    Ce n'est pas plutot java --version ?
    Non c'est bien java -version

  11. #11
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Oui effectivement, c'est java -version au temps pour moi. Apparament il n'y a que java -version qui est affecté par ce comportement, les autres options fonctionne correctement.

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/12/2008, 19h24
  2. [Système] Exécuter un programme perso avec php
    Par blastafarie dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2007, 10h39
  3. [Système] lancer un programme Java via PHP
    Par bibiwan14 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2007, 16h13
  4. Réponses: 2
    Dernier message: 17/03/2007, 15h11
  5. [Système] Exécuter un programme Java en PHP
    Par sylsau dans le forum Linux
    Réponses: 4
    Dernier message: 26/04/2006, 18h12

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