Bonjour à tous,
j'essaye de lancer un exécutable issue d'un code source écrit en C (un bête hello word pour ce test) depuis une page php.
Voila le code php :
<?php
$cmd2="/home/guillaume/public_html/a/a.out";
//$cmd2="./a.out";
$cmd3="ls";
$return_var=0;
$retour=system($cmd2, $return_var);
?>
<head>
</head>
<body>
<h1>
<?php
echo("commande : " . $cmd2 . "<br/>");
echo("retour prgm : ". $retour . "<br/>");
echo("valeur retour : " . $return_var );
?>
</h1>
</body>
Lorsque je lance mon programme, la variable retour reste vide, et return_val prend la valeur 126.
Pourtant, si je tente de lancer la $cmd3 ("ls") à la place de $cmd2, "ls" est bien éxecuté.
J'ai pensé à une question de chemin relatif ou absolu, donc j'ai testé les deux, sans succès.
J'ai pensé à un problème de droits, donc j'ai fait un :
chmod 777 a.out
puis par acquis de conscience, j'ai lancé un :
sudo -u apache /home/guillaume/public_html/a/a.out
et j'ai bien eu le retour
hello word
Mais ma page php a toujours son code retour 126...
Donc le problème ne vient à priori pas des droits sur le fichier.
Je me suis demandé si il n'y avait pas un problème de configuration apache, j'ai ouvert erreur.log et j'ai trouvé les deux lignes :
sh: /home/guillaume/public_html/a/a.out: Permission denied
sh: ./a.out: Permission denied
J'ai vérifié httpd.conf, et j'ai bien les lignes :
User apache
Group apache
J'ai essayé de poser ma question sur des forums de php, sans trop de succès, puis j'ai tenté de copier mon programme et ma page php sur une machine virtuelle ubuntu, et la, tout a fonctionné correctement. Je pense donc que le problème viens d'un problème de configuration propre à Fedora, et du coup, je tente de trouver de l'aide ici 🙂
Je remercie par avance toute personne qui se penchera sur mon problème 🙂