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 :
$output = shell_exec("./script.sh var1 var2");
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 :
$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
Dans cet exemple, nous :
Par en s'assurant que le bon répertoire est en place, ce code modifié devrait exécuter avec succès le script bash de PHP.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3