Pour faire ça de manière simple via php, en limitant l’accès avec un .htaccess.
D’abord tu choisis un couple user/mdp, et tu crées un fichier crypt.php qui contient :
<?php
echo crypt('monpassword'); ?>
(tu peux supprimer le fichier ensuite)
Tu crées un fichier de mot de passe .htpasswd, que tu peux mettre à peu près n’importe où, qui contient une ligne du type user:mdpcrypté(récupéré avec le crypt.php)
Tu crées un fichier .htaccess, que tu mets dans le même dossier que le futur script php (ou tu mets dans ton userdir.conf)
AuthName "Page de gestion du serveur"
AuthType Basic
AuthUserFile "/chemin/vers/ton/fichier/de/mot/de/passe/.htpasswd"
Require valid-user
DirectoryIndex action.php
Normalement, si tu n’as pas touché à ça, la configuration d’apache empêche tout accès aux fichiers .htaccess/.htpasswd.
le script action.php (tu peux le renommer, mais change le DirectoryIndex du fichier .htaccess, sinon on pourra lister ton répertoire et donc on pourra ddl ton script)
[code]
Gestion du serveur
<?php
if(!empty($_POST))
{
if(!empty($_POST['arreter']) && empty($_POST['demarrer']))//On va arrêter le serveur, mais on vérifie que quelqu'un envoie pas l'instruction d'arrêt et de démarrage
{
if(shell_exec('ton shell /chemin/vers/ton/script/d/arrêt'))
{
echo 'Le serveur a bien été arrêté.
';
$msg_log='['.date("d\/m\/Y\ H\:i\:s").']['.$_SERVER['REMOTE_ADDR'].'] a arrêté le serveur, sans problème.';
shell_exec('echo '.$msg_log.'>>/chemin/vers/fichier/de/log/prefere.log');
unset($msg_log);
//On enregistre(date +IP) qui éteint/allume le serveur. Le fichier de log doit être en 777 au niveau droit.
}
else
{
echo 'Un problème est survenu lors de l\'extinction.
';
$msg_log='['.date("d\/m\/Y\ H\:i\:s").']['.$_SERVER['REMOTE_ADDR'].'] a tenté d\'arrêter le serveur, mais un problème est survenu.';
shell_exec('echo '.$msg_log.'>>/chemin/vers/fichier/de/log/prefere.log');
unset($msg_log);
}
}
if(!empty($_POST['demarrer']) && empty($_POST['arreter']))//Pareil, on vérifie qu'on essaye pas d'éteindre et de rallumer
{
if(shell_exec('ton shell /chemin/vers/ton/script/de/demarrage'))
{
echo 'Le serveur a bien été démarré.
';
$msg_log='['.date("d\/m\/Y\ H\:i\:s").']['.$_SERVER['REMOTE_ADDR'].'] a démarré le serveur, sans problème.';
shell_exec('echo '.$msg_log.'>>/chemin/vers/fichier/de/log/prefere.log');
unset($msg_log);
//On enregistre(date + IP) qui éteint/allume le serveur. Le fichier de log doit être en 777 au niveau droit.
}
else
{
echo 'Un problème est survenu lors du démarrage.
';
$msg_log='['.date("d\/m\/Y\ H\:i\:s").']['.$_SERVER['REMOTE_ADDR'].'] a tenté de démarrer le serveur, mais un problème est survenu.';
shell_exec('echo '.$msg_log.'>>/chemin/vers/fichier/de/log/prefere.log');
unset($msg_log);
}
}
}
?>
[/code]
Je sais pas si le problème est toujours d'actualité, mais ça peut toujours servir à quelqu'un. J'ai commenté le code, n'hésite pas si tu as des questions !