Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2006, 10h58   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 40
Points : 14
Points : 14
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 :
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
espadon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 12h18   #2
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
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
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 15h40   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 40
Points : 14
Points : 14
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 ?
espadon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 11h36   #4
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
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.
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 11h29   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 40
Points : 14
Points : 14
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
espadon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 14h36   #6
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
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
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 15h38   #7
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 40
Points : 14
Points : 14
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 :
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.
espadon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 15h52   #8
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 40
Points : 14
Points : 14
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
espadon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 16h04   #9
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
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.
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 16h58   #10
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Essaye ceci pour commencer:
Code :
echo shell_exec('../scripts/detail_equipements.pl 2>&1');
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 10h09   #11
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 40
Points : 14
Points : 14
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.
espadon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 22h00   #12
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Change les droits des fichiers qui coincent (droits Linux). A moins que ça ne soit un problème d'accès MySQL (droits MySQL).
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h40.


 
 
 
 
Partenaires

Hébergement Web