Bonjour,
Je tente de faire un petit script en php qui me permettrait sur mon serveur d'exécuter un programme C qui se trouve sur le serveur et d'en récupérer le résultat.
J'ai regardé dans la documentation de PHP, et j'ai trouvé les fonctions de la famille exec().
La fonction shell_exec() me paraissant faire bien l'affaire. J'ai voulu faire un petit test très bête avec un hello world en C :
J'ai compilé ce programme sous le nom hello.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <stdio.h> #include <stdlib.h> int main(void) { printf("Hello World"); return 0; }
Voici mon petit script php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $output = shell_exec('./hello'); echo"sortie : $output"; ?>
Bon en sortie, je n'ai rien le programme que j'ai créer ne s'exécutant pas apparemment. J'ai donc regardé du côté de la configuration de php sur le serveur et j'ai vu ça :
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
Apparemment, le safe_mode n'est pas activé je devrais donc pouvoir utiliser les fonctions de la famille exec.
J'ai donc testé shell_exec() sur des commandes du shell telle qu'un simple ls ou un echo et là ça marche, l'exécution se produit bien et j'ai bien l'affichage du résultat sur ma page php.
Donc, je me demande d'où mon problème pourrait venir par rapport à l'exécution d'un des mes propres exécutables.
Peut être un problème de droit (mais j'ai donné tous les droits sur l'exécutable).
Quelqu'un aurait une idée ?
Merci d'avance de votre aide.
Sylvain.
Partager