[PHP] System, passthru ?

System, passthru ? [PHP] - PHP - Programmation

Marsh Posté le 02-12-2003 à 22:25:14    

quels sont les etapes pour faire marche un 'system' (ou passthru) en local ?
 
Je veux lancer la commande 'blabla -option'
je fais system('blabla -option');
--> RIEN ( ni sortie ecran ( echo system... ) ni action ( commande non exectué ) pourtant pas d'erreur.
 
Je me souviens qu'il faut mettre les 'bin' a un certain endroit
et une option dans php.ini (saf_mode on ou off...)
 
(SOUS LINUX ;))
 
Merci


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 02-12-2003 à 22:25:14   

Reply

Marsh Posté le 03-12-2003 à 10:59:54    

Et avec shell_exec()?
 

Code :
  1. <?php
  2. $output = shell_exec('blabla -option');
  3. echo "<pre>$output</pre>";
  4. ?>


 
EDIT : precisions =>
 
- il faut indiquer le chemin complet ('/usr/bin/blabla -option')
- le safe mode doit etre désactivé (safe_mode = Off dans ton php.ini)
 


Message édité par impulse le 03-12-2003 à 11:34:59
Reply

Marsh Posté le 03-12-2003 à 13:28:31    

Ca ne marche pas, $output est vide et la commande n'est pas executée
pourtant tout est "bon"
(chemin complet et safe_mode=off)


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 03-12-2003 à 13:30:15    

tu n'as même pas un message d'erreur?
l'utilisateur apache a-t-il les droits d'exécution sur ton script?

Reply

Marsh Posté le 03-12-2003 à 13:36:01    

J-'-R a écrit :

Ca ne marche pas, $output est vide et la commande n'est pas executée
pourtant tout est "bon"
(chemin complet et safe_mode=off)


 
Tu as essayé avec une commande "basique" genre ls? Tu as quoi dans tes logs Apache? Pas de msg d'erreur?

Reply

Marsh Posté le 03-12-2003 à 14:52:59    

sh: line 1: /rep/blabla: Permission denied :(
Pourtant blabla est exectutable par tous (donc apache)


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 03-12-2003 à 14:57:24    

Cette commande fonctionne quand tu la tapes dans une console? Je demande ça comme ça...
Essaye avec une commande comme "ls" juste pour voir si ça marche.

Reply

Marsh Posté le 03-12-2003 à 18:52:41    

oui cette commande fonctionne quand je la tapes dans un term
et oui ls marche et retourne la liste des fichiers si je remplace dans la fonction


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 04-12-2003 à 08:58:50    

Bon ben c'est clair que tu as un pb de droits alors. Tu n'as surement pas les meme droits sur ls et ta commande, si? Quel est ton user Apache?


Message édité par impulse le 04-12-2003 à 09:01:48
Reply

Marsh Posté le 04-12-2003 à 18:22:24    

mon user apache est "apache", un user spécifique,
parcontre je ne comprends pas car le fichier "blabla" est dispo en execution pour TOUS ( donc apache ... )  
NON ?


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 04-12-2003 à 18:22:24   

Reply

Marsh Posté le 05-12-2003 à 07:54:01    

Je suppose que ls et blabla ne sont pas dans le meme repertoire donc... Essaye de voir les droits sur le rep qui contient blabla.

Reply

Marsh Posté le 05-12-2003 à 08:35:24    

blalbla est peut-être executable par tous, mais peut-être que /rep n'est pas lisible par apache...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 07-12-2003 à 15:57:08    

tous les repertoires de l'arbo qui va jusqu'a 'blabla'  
sont en root root -rwxr-xr-x
donc ca devrait marcher ?  
'blabla' : root root rwxr-xr-x


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 07-12-2003 à 16:08:38    

j'ai peut etre trouve d ou venai le probleme,
mon user a un shell: bin/bash
et l user apache a un autre shell: bin/sh
je pense que la commande 'blabla' marche sous le bin/bash mais pas sous le bin/sh donc je vais mettre le bin/bash a l user apache...
test...


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 07-12-2003 à 16:16:25    

c'est pas ca :(


---------------
Perdu ? Vous êtes ici : --> *
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed