Bonjour, je suis en train de devenir fou sur un problème incompréhensible!
J’utilise la fonction shell_exec de PHP, voilà mon code:
if($_POST['stop'])
{
$monfichier = fopen('/var/www/serveurs/' . $uniqueid . '/stop.sh', 'w+');
fputs($monfichier, 'screen -p 0 -S ' . $_POST['array'] . ' -X stuff "stop' . "\n");
fputs($monfichier, '"');
fclose($monfichier);
shell_exec('chmod 755 /var/www/serveurs/' . $uniqueid . '/stop.sh');
$stop = '/var/www/serveurs/' . $uniqueid . '/stop.sh';
shell_exec($stop);
sleep(2);
}
if($_POST['start'])
{
$monfichier = fopen('/var/www/serveurs/' . $uniqueid . '/start.sh', 'w+');
fputs($monfichier, 'screen -dmS ' . $uniqueid . ' -s exec java -Xms128M -Xmx960M -jar minecraft_server.jar nogui');
fclose($monfichier);
shell_exec('chmod 755 /var/www/serveurs/' . $uniqueid . '/start.sh');
$start = '/var/www/serveurs/' . $uniqueid . '/start.sh';
shell_exec($start);
sleep(2);
}
Voilà la partie STOP et START sont identiques mis à part la commande écrite dans le fichier texte et le nom STOP et START.
La commande STOP fonctionne.
Mais pas la commande START, il crée bien le fichier start.sh, change les droits en 755, mais c’est comme si il n’y avait pas cette ligne: shell_exec($start);
Si je me logge en tant que www-data et que je fait ./start.sh ça fonctionne! ce n’est donc pas un problème de droit ou de fichier…
C’est vraiment bizarre je comprend vraiment pas!
Merci pour votre aide.