Bonjour a tous,
je n'arrive pas a executer un script shell avec un fichier passer en paramètre sous php. Voila mon code:
$script = /home/scripts/restauration.sh
$temp = /tmp/tempoQh4zI
$com = "$script $temp";
echo "$com";
$command = escapeshellcmd ("$com");
echo "$command";
$fini = exec ($command);
j'ai un peu tout essayé
$fini = exec ("$script $temp")
avec ou sans escapeshellcmd
avec des ", des ',des `, sans rien
bref je suis a court d'idées, je ne vois pas comment faire? (je précise que dans mon terminal, si je lance les valeurs
$script $temp ca fonctionne )
merci pour vos réponses
# et la doc te dis quoi ?
Posté par Mouns (site web personnel) . Évalué à 2.
http://fr2.php.net/manual/fr/function.exec.php
sinon, il me semble que tu cherches quelque chose de plus proche de system dont la doc est http://fr2.php.net/manual/fr/function.system.php
les infos générales sur le sujet sont : http://fr2.php.net/manual/fr/ref.exec.php
# shellexec
Posté par littlebreizhman . Évalué à 1.
shell_exec -- Exécute une commande via le Shell et retourne le résultat sous forme de chaîne
$com="$script $temp";
$result=shell_exec($com);
echo $result;
ça devrait fonctionner
[^] # Re: shellexec
Posté par Mildred (site web personnel) . Évalué à 1.
$resultat = `ma_commande_bash avec ses arguments`
[^] # Re: shellexec
Posté par Mildred (site web personnel) . Évalué à 1.
debut<?php
print `echo aa`;
?>fin
Ctrl+D
debutaa
fin
[mildred@louve ~]$
# Ya des trucs qui clochent
Posté par Rui AVELINO . Évalué à 1.
$script = /home/scripts/restauration.sh
$temp = /tmp/tempoQh4zI
il manque des " et des ; ça c'est sure.
Le programme PHP se lance sans erreur ? quel sont les retours de exec ?
En gros qu'est ce qui se passe quand tu lance effectivements ton script php qu'as tu à l'écran ?
[^] # Re: Ya des trucs qui clochent
Posté par DtekT . Évalué à 0.
pour ce qui est des shell_exec, exec, system , passthru j'ai déja tout essayé ca ne lance rien, ca ne fait pas de message d'erreur, et ca me renvoi meme le code 0 pour dire que ca a fonctionné....
le script exact:
$script = "/home/scripts/restauration.sh";
$temp = "/tmp/tempoQh4zI";
$com = "$script $temp";
echo "$com";
$fini = shell_exec ("$com");
echo $fini;
le echo "$com"; affiche /home/scripts/restauration.sh /tmp/tempoQh4zI
mais ce ne fonctionne pas, pourtant si je lance
/home/scripts/restauration.sh /tmp/tempoQh4zI dans mon terminal ca focntionne...??
comprend pas...
[^] # Re: Ya des trucs qui clochent
Posté par littlebreizhman . Évalué à 1.
Si oui, pour tester, détourne la pour voir si tout ce pas bien pendant que l'exec de php tourne
par exemple :
$com = "$script $temp 2>/tmp/error.out 1>/tmp/log.out";
$fini = shell_exec ("$com");
[^] # Re: Ya des trucs qui clochent
Posté par Rui AVELINO . Évalué à 1.
www-data a-t-il: les droits d'exécutions sur le programme que tu essais de lancer ?
C'est peut être une raison.
Quand tu le lances a la main tout se passe bien car tu es l'utilisateur qui a le droit d'exécuter le programme restauration.sh
Par contre quand c'est le php qui essai de le faire c'est l'utilisateur qui lance le php qui tente de le faire (généralement www-data) et donc lui aussi doit avoir les droits d'exécution dessus.
[^] # Re: Ya des trucs qui clochent
Posté par DtekT . Évalué à 0.
[^] # Re: Ya des trucs qui clochent
Posté par Rui AVELINO . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.