Ah ben non.
Il ne faut pas arrêter Apache, bricoler, et relancer Apache ensuite.
Il faut bricoler, et après, on stop/démarre Apache.
Rien n'interdit de modifier les fichiers de config PHP/Apache/SQL pendant que les services tournent.
Si vraiment l'arrêt du service est nécessaire, il faut appeler un script CLI avec
exec() pour pouvoir travailler quand Apache sera à l'arrêt.
J'ai essayé un truc pour voir si un redémarrage est possible en passant par une élévation de privilèges.
J'ai d'abord fait une copie de
php.exe en
php-admin.exe. Je suis obligé de faire une copie, j'utilise
php.exe sans cesse dans des tâches planifiées.
Ensuite, un clic droit sur
php-admin.exe, onglet
Compatibilité, et on sélectionne
Exécuter en tant qu'administrateur.
Voilà, on a un PHP qui s'exécutera en mode Admin.
Ensuite, on crée un script de redémarrage des services dans
wamp/scripts/restart.php :
<?php
function restart($service) {
exec('net stop '. $service);
exec('net start '. $service);
}
restart('wampapache64');
restart('wampmariadb64');
Il ne reste plus qu'à utiliser ce script PHP qui aura des privilèges Admin :
<?php
if(empty($_GET['restart'])) {
echo '<form method="get">
Cliquez sur le bouton pour redémarrer Wamp serveur
<input type="submit" value="Restart" />
<input type="hidden" name="restart" value="go">
</form>
Sinon, quittez cette page.';
}
else exec('php-admin -f E:\wamp\scripts\restart.php');
Et voilà, Apache et MariaDB sont rechargés depuis une page web.
Je ne sais pas si c'est à cause du SSL, mais au retour de la page, une erreur est affichée (connexion réinitialisée).
Il faudrait voir ce qu'il est possible de faire de ce côté. Notamment en évitant le rechargement de la page, à cause d'un formulaire, en utilisant une petite dose de JavaScript.