Dans cette question, nous rencontrons un développeur PHP qui tente d'exécuter un script bash à partir de PHP à l'aide de shell_exec. La syntaxe utilisée est :
<code class="php">$output = shell_exec("./script.sh var1 var2");</code>
Cependant, le script ne parvient pas à s'exécuter lorsque cette commande est appelée.
Pour déboguer ce problème, il est important d'identifier la cause de l'échec. Comme le script s'exécute correctement lors de son exécution via la ligne de commande à l'aide de ./script.sh var1 var2, le problème réside probablement dans le code PHP.
Un problème courant pouvant entraîner l'échec de l'exécution du script est celui des autorisations ou des chemins de répertoire incorrects. . Les scripts PHP nécessitent souvent que le répertoire de travail correct soit défini avant d'exécuter des commandes externes. Pour résoudre ce problème, le code peut spécifier le répertoire correct à l'aide de chdir avant d'appeler shell_exec.
L'extrait suivant résout ce problème :
<code class="php">$old_path = getcwd(); chdir('/my/path/'); $output = shell_exec('./script.sh var1 var2'); chdir($old_path);</code>
Dans cet exemple, nous :
En vous assurant que le bon répertoire est en place, ce code modifié devrait exécuter avec succès le script bash depuis PHP.
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!