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

Bibliothèques et frameworks PHP Discussion :

Lancer un script Perl à partir de PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut Lancer un script Perl à partir de PHP
    Salut tout le monde,
    Me voila confronté à un problème Comme le titre l'indique, je souhaiterais lancer un petit programme en perl par une commande dans mon script php.

    J'ai fais des recherches sur le net et j'ai trouvé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sortie = shell_exec('../scripts/detail_equipements.pl');
    echo "<br>Sortie : $sortie";
    Je précise que mon script fonctionne parfaitement quand je le lance à la main.
    La commande est bonne ? serait-ce un problème de droit ?

    Toutes les idées sont les bienvenues
    Merci d'avance

  2. #2
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    As-tu regardé ton error.log (et eventuellement access.log) parmi tes logs d'apache. Les erreurs de ce type y sont souvent reportées. Ca pourrait te donner une piste...
    Sohnic

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta réponse sohnic mais je n'ai aucune erreur.
    De plus j'ai continué à bosser dessus et il s'avère que le script se lance bien mais je n'ai aucun retour

    Que faire ?

  4. #4
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Juste pour voir...
    Si tu fais :
    exec('../scripts/detail_equipements.pl>sortie.txt');

    Le fichier sortie.txt contient-il la reponse ? Si oui, deja le probleme n'est pas au niveau de l'execution du script perl...
    Apres, je suis a court d'idées...

    S.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Désolé pour le temps de réponse, mes journées ont été plutot chargées ces derniers temps

    Pour te répondre sohnic, quand je lance ta commande, je n'ai pas de fichier texte qui se crée
    Pourtant, ma page php met du temps à se charger (le temps que le script s'exécute).

    De plus, en affichant les processus qui sont lancés sur mon serveur, je vois bien mon script mais avec pour utilisateur celui du serveur httpd.
    Est-ce que ca pourrait venir de là (un problème de droits) ?

    Je précise que j'ai mis 755 en droits pour mon script.

    Quelqu'un aurait une illumination ? ou juste une idée je suis aussi preneur

  6. #6
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    C'est normal que le process appartienne a apache, vu que que c'est lui qui l'a lancé. Coté droits 755, c'est bien les droits d'execution pour tout le monde ? (flemme de verifier). Au pire, dans un premier temps fait un chown pour que le script appartienne a apache. Tu n'auras plus ce probleme de droits a gerer (enfin d'execution du script lui-meme, mais a priori, ca c'est bon, etant donné que tu vois bien le process lancé par apache)... Maintenant, ce qui est bizarre, c'est que tu n'ais pas d'erreur dans tes logs apache (en general dans ces cas la on y trouve les acces denied (par exemple ton script lance des trucs que seul root a le droit de faire) ou pb de variables d'environnement non declarées, etc.. Enfin, chez moi, c'est comme ca que ca marche).
    Ton fichier de sortie est peut-etre cree dans un endroit ou apache n'a pas le droit d'ecrire (ca se verrait dans les logs).

    Fais-tu l'affichage des erreurs ?
    Si tu passes en ligne de commande pour lancer ton script php, que se passe-t-il (php ton_script.php) ?

    Apres, je n'ai pas vraiment d'idées.......

    Sohnic

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta persévérance sohnic,

    J'ai du modifié légèrement mon script pour qu'il tourne en ligne de commande.
    En faisant un , j'obtient effectivements 2 warnings :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Warning: mysql_query(): Access denied for user: 'espadon1@localhost' (Using password: NO) in /usr/local/apache2/www/test/lib/sqlOSD.php on line 12
     
    Warning: mysql_query(): A link to the server could not be established in /usr/local/apache2/www/test/lib/sqlOSD.php on line 12
    Erreur lors de l'envoi d'une requete dans la base : Access denied for user: 'espadon1@localhost' (Using password: NO)
    Pourtant je spécifie bien le nom d'utilisateur et le mot de passe correspondant pour me connecter à la base.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    J'ai réussi à faire partir ces warnings, du coup ca fonctionne bien en ligne de commande.
    Mais dès que j'essaye en ligne. Ca ne marche plus

  9. #9
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Alors, apres, je ne vois vraiment pas. Ca ressemble a un probleme de droit : ton script perl fait-il des trucs autorisés uniquement en root (ou par certains users) ? Ce qui est bizarre, c'est que ces erreurs apparaissent dans les logs d'erreur d'apache, or ca n'est pas ton cas...
    Il fait quoi ce script perl ?
    Et si tu cree un compte avec des droits minimalistes (pour mimer le user apache) et que tu lances ton script en ligne de commande a partir de la, ca marche ?

    Sinon, pas plus d'idees... Vraiment desolée...

    S.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Essaye ceci pour commencer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo shell_exec('../scripts/detail_equipements.pl 2>&1');

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    En fait, mon script interroge une base mysql et récupère des noms d'équipements.
    A partir de ces noms, il interroge Ciscoworks, récupère sa réponse, qui est filtrée.
    Et enfin je mets à jour la base avec les informations récupérées précédemment.
    En gros, ce serait nickel si ca marchait correctement

    Sinon je viens de vérifier ce que tu as mis ripat, j'ai des permission denied qui apparaissent.
    Et ca que je sois avec l'utilisateur identique à apache ou avec mon compte.

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Change les droits des fichiers qui coincent (droits Linux). A moins que ça ne soit un problème d'accès MySQL (droits MySQL).

Discussions similaires

  1. lancer un script perl via php et afficher le résultat
    Par funmatica dans le forum Langage
    Réponses: 3
    Dernier message: 10/09/2013, 14h56
  2. Réponses: 26
    Dernier message: 15/06/2009, 17h02
  3. lancer un script Perl à travers un script PHP
    Par winnie82 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 18h43
  4. [Système] Lancer un script perl avec PHP
    Par pepite dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 12h30
  5. Réponses: 13
    Dernier message: 01/10/2004, 14h03

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