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 :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- printf("Hello World" );
- return 0;
- }
|
J'ai compilé ce programme sous le nom hello.
Voici mon petit script php :
Code :
- <?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.