Pourquoi ne puis-je pas exécuter ce script bash en php? J'ai essayé exec()
ainsi que Shell_exec()
.
index.php
<?php
$old = getcwd();
echo $old;
chdir($old);
$message=exec("a.sh");
print_r($message);
?>
cendre
#!bin/bash
echo "i am a" > /opt/lampp/htdocs/a.txt
echo "Done"
J'ai essayé chdir
comme suggéré ici, ainsi que j'ai vérifié mon disable_functions
dans php.ini
, il n'a rien. J'ai également vérifié d'autres questions, mais aucune ne semble résoudre mon problème.
Tout d’abord, assurez-vous que Shebang est exactement comme suit:
#!/bin/bash
Deuxièmement, assurez-vous que le script est exécutable à l'aide de la commande suivante dans le terminal:
chmod +x /path/to/a.sh
Et troisièmement, vous devez utiliser le chemin complet du script bash ou, dans votre cas, vous pouvez utiliser:
$message=exec("$old/a.sh");
De plus, les deux commandes suivantes de votre script php n’ont aucun sens:
$old = getcwd();
chdir($old);
Ils sont équivalents à chdir(getcwd())
, qui modifie le répertoire en cours en ... le répertoire en cours, donc rien ne se produit.