J'utilise la fonction shell_exec de PHP, voilà mon code:
Code : Tout sélectionner
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);
}
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.