Hello tout le monde !
Je viens vers vous pcq j'ai un souci avec php et plus précisément avec la fonction shell_exec.
Pour expliquer, une webradio où je fais de la maintenance à un souci avec un vieux panel de gestion de serveur de streaming shoutcast 1.
Ce panel étant compatible php5 maximum, j'ai du un peu chipoter pour avoir une Debian 9 avec cette version.
Cependant, tout marche bien, tout sauf une irréductible ligne de code qui résiste encore à l'envahisseur du bon fonctionnement.
Alors dans le code suivant, on voit qu'on prépare la commande d’exécution pour lancer le serveur shoutcast avec la configuration qui va avec, le tout stocké dans $cmdstr.
$cmdstr = "nohup ".$config['sc_serv']." ".$config['smi_path']."/servers/".$port."".$srvname.".conf > /dev/null & echo $!";
echo $cmdstr;
$pid = shell_exec($cmdstr);
echo $pid;
Quand je fais un echo de $cmdstr, il me sort la commande parfaite sans erreur de syntaxe; commande que j'ai même testé avec succès en bash sous le même utilisateur sous lequel apache2 exécute celle-ci.
Le souci, c'est dès que je regarde si le shell_exec a bien exécuté cette commande quand je passe par apache2 et non directement en bash, aucun serveur shoutcast ne se lance.
Je récupère bien un PID dans $pid mais aucune trace du serveur de streaming.
Du coup je ne sais pas si des gens baignant plus dans php que moi auraient une piste pour moi ?
Ce code tournait nickel sous Debian Wheezy, distribution sur laquelle ils sont encore mais plus pour longtemps...
Merci d'avance !