Exécuter un fchier shell depuis un fichier php

Résolu/Fermé
Micka57130 Messages postés 8 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 20 novembre 2015 - Modifié par jordane45 le 13/05/2015 à 10:09
Micka57130 Messages postés 8 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 20 novembre 2015 - 13 mai 2015 à 14:12
Bonjour à tous,

Actuellement en projet, je dois exécuter un fichier shell (taka.sh) à partir d'un bouton sur une page html. J'ai pour cela écrit un petit programme en php pour exécuter le fichier shell.
<?php
if(isset($_POST['script']))
{
exec('./taka.sh');

}

<form action="controle.php" method="post">
<p>
<input type="submit" name="script" value="Lancer" />
</p>
</form>
?>

J'ai bien le bouton sur la page html, cependant le shell ne s'exécute pas.

PS: le shell fonctionne. Désolé pour cette demande un peu vague, je débute.
Merci d'avance.
Cordialement.

Micka

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
A voir également:

2 réponses

jordane45 Messages postés 38472 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2025 4 745
13 mai 2015 à 10:15
Bonjour,

Déjà, tu peux regarder ce que retourne la commande EXEC au moment de son exécution.
Tu peux aussi t'assurer que le script est bien trouvé ...
<?php

$scriptFile = "./taka.sh";

if(isset($_POST['script'])) {
 if(file_exists(scriptFile)){
  exec($scriptFile , $arrOP, $retVal);
  print_r($arrOP);
  print_r($retVal);
 }else{
 echo "Fichier $scriptFile  introuvable ! ";
 }
}


Si ça ne fonctionne toujours pas, vérifies aussi les droits sur tes répertoires.
0
Micka57130 Messages postés 8 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 20 novembre 2015
13 mai 2015 à 10:30
Merci de ta réponse.

J'ai testé ton code. Le fichier est introuvable.
Il a bien tous les droits.

Cordialement,
Mickael.
0
jordane45 Messages postés 38472 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2025 4 745
13 mai 2015 à 10:36
Donc.. si le fichier est "introuvable" .. c'est
- Soit qu'il ne porte pas ce nom là
- Soit qu'il ne se trouve pas à l'endroit que tu indiques

Dans le message d'erreur... quel est le chemin du fichier qui est indiqué ?
0
jordane45 Messages postés 38472 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2025 4 745
13 mai 2015 à 10:36
Oups .. petite erreur de copier/coller de ma part
Il manque un $ devant la variable dans le IF

<?php

$scriptFile = "./taka.sh";

if(isset($_POST['script'])) {
 if(file_exists($scriptFile)){
  exec($scriptFile , $arrOP, $retVal);
  print_r($arrOP);
  print_r($retVal);
 }else{
 echo "Fichier $scriptFile  introuvable ! ";
 }
}
0
Micka57130 Messages postés 8 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 20 novembre 2015 > jordane45 Messages postés 38472 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2025
13 mai 2015 à 10:44
Quel message d'erreur ?
J'ai juste un retour sur la page html :" Fichier ./taka.sh introuvable ! "

Le fichier se trouve bien dans le bon répertoire.
0
Micka57130 Messages postés 8 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 20 novembre 2015 > jordane45 Messages postés 38472 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2025
13 mai 2015 à 10:54
Effectivement, le fichier n'est plus introuvable.
Cependant la page web "charge" indéfiniment. Impossibilité de voir si le code fonctionne donc.
0
jordane45 Messages postés 38472 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2025 4 745 > Micka57130 Messages postés 8 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 20 novembre 2015
13 mai 2015 à 10:58
Après.. tout dépend de ce que contient ton script sh.
Tu as essayé de faire un script qui ne ferait qu'un LS par exemple ?
0