Je veux exécuter un script Shell dans une page Web php pour vérifier certains processus en cours d'exécution sur mon système (Ubuntu 12.04). J'ai trouvé environ Shell_exec()
sur Google mais je n'arrive pas à exécuter le script lors du chargement de php.
C'est le code php que j'utilise.
$output = Shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";
et le morceau de HTML je reçois
<pre></pre>
Aussi essayé $output = Shell_exec('Sudo -u www-data ./dirlist.bash');
dirlist.bash fait ls -l (juste pour tester le script et Shell_exec)
Je pense que ce n'est pas un problème de permission. Les attributions d'annuaire en cours d'exécution accordent des privilèges d'écriture et d'exécution à tous les utilisateurs (je dois faire attention ici).
drwxrwxrwx 4 meteo meteo 4096 mar 11 15:20 RAMS
L'utilisateur www-data a été ajouté au fichier sudoers au besoin
www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash
Merci d'avance
Vous aurez probablement besoin de chdir dans le bon répertoire avant d'appeler le script. De cette façon, vous pouvez vérifier dans quel répertoire votre script est "in" avant d'appeler la commande Shell.
$old_path = getcwd();
chdir('/my/path/');
$output = Shell_exec('./script.sh var1 var2');
chdir($old_path);
echo "<pre>$output</pre>";
Code de: