Maison >développement back-end >tutoriel php >Pourquoi mes scripts Bash ne s'exécutent-ils pas depuis PHP ?
Exécution de commandes Bash à partir de PHP : dépannage des scripts non exécutés
Un utilisateur rencontre des difficultés pour exécuter un script Bash à partir d'un fichier PHP. Malgré les tentatives d'utilisation de shell_exec et de system, le script reste inexécuté. Cependant, d'autres commandes comme "ls" fonctionnent correctement en utilisant shell_exec.
Cause potentielle et solution :
Le problème provient très probablement de l'exécution du script à partir du mauvais répertoire. Pour résoudre ce problème, l'utilisateur doit remplacer le répertoire de travail actuel par le répertoire où réside le script avant de l'exécuter. Cela garantit le contexte correct pour l'exécution du script.
Extrait de code :
L'extrait de code suivant montre comment exécuter correctement le script Bash :
<code class="php">$old_path = getcwd(); chdir('/my/path/'); // Change to the script's directory $output = shell_exec('./script.sh var1 var2'); chdir($old_path); // Return to the previous working directory</code>
Dans ce code, getcwd() récupère le répertoire de travail actuel, chdir('/my/path/') définit le répertoire de travail sur le chemin du script, shell_exec('./script.sh var1 var2') exécute le script avec les arguments donnés, et chdir($old_path) revient au répertoire de travail précédent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!