XAMPP qui refuse de démarrer, c’est le classique du développeur sous Windows. Et la vérité, c’est que dans 90 % des cas, ce n’est pas XAMPP le problème : c’est nous. On installe, on clique, on croit que ça va marcher tout seul, et boum, Apache reste rouge. Voici ce que vous faites mal — et comment le corriger pour de bon.
Port 80 et 443 occupés : l’erreur numéro 1 de XAMPP
Le port 80 est squatté par Skype, IIS, ou même le service « World Wide Web Publishing ». Résultat : Apache ne peut pas se lier au port et refuse de démarrer. Pareil pour le port 443, utilisé par Apache pour les connexions HTTPS.
Pour vérifier qui occupe un port, ouvrez l’invite de commandes et tapez netstat -ano | findstr :80. Vous récupérez le PID du processus. Ensuite, tasklist | findstr vous donne le nom du coupable. Arrêtez-le, ou changez de port.
Beaucoup de gens se contentent de fermer Skype et ça remarche… jusqu’au prochain redémarrage. Mauvaise approche. La bonne solution : changer définitivement le port d’Apache en éditant httpd.conf dans xampp/apache/conf/. Remplacez Listen 80 par Listen 8080, et ServerName localhost:80 par ServerName localhost:8080. Redémarrez. C’est réglé.
Pour le HTTPS, il faut aussi modifier httpd-ssl.conf dans xampp/apache/conf/extra/ : passez Listen 443 à Listen 8443. Sinon, votre certificat SSL local ne servira à rien.
XAMPP et les privilèges administrateur : le piège silencieux
XAMPP a besoin d’écrire dans ses propres dossiers, de lancer des services Windows et de manipuler des fichiers système. Si vous le lancez en simple utilisateur, Apache et MySQL démarrent parfois, puis plantent sans prévenir.
La règle est simple : clic droit sur xampp-control.exe → « Exécuter en tant qu’administrateur ». Vous pouvez aussi cocher « Exécuter en tant qu’administrateur » dans les propriétés du raccourci. Ça évite bien des erreurs XAMPP inexplicables.
Attention : certains guides conseillent de désactiver complètement l’UAC. Mauvaise idée en 2026 sur Windows 11. Baissez le niveau de contrôle plutôt que de le supprimer, ou utilisez l’option « Exécuter en tant qu’administrateur » au cas par cas.
MySQL ne démarre pas : my.ini, port 3306 et données corrompues
L’erreur « MySQL shutdown unexpectedly » dans XAMPP sous Windows 10 ou 11 vient presque toujours d’un des trois cas suivants : le port 3306 est occupé, les fichiers ibdata1 ou ib_logfile* sont corrompus, ou le service MySQL installé séparément tourne en parallèle.
Vérifiez d’abord le port : netstat -ano | findstr :3306. Si un processus autre que mysqld l’utilise, soit vous le tuez, soit vous changez le port dans my.ini (cherchez port = 3306 et mettez 3307).
Deuxième réflexe : allez voir les logs. Ils sont dans xampp/mysql/data/, fichier mysql_error.log. La cause exacte y est écrite noir sur blanc. Ne devinez pas, lisez.
Si les fichiers InnoDB sont corrompus, la solution propre est de sauvegarder le dossier data/, puis de renommer ibdata1, ib_logfile0 et ib_logfile1, et de relancer. MySQL les recrée. Vous perdez les tables système, mais vous repartez.
Le panneau de contrôle XAMPP qui se bloque ou affiche « Apache is not started »
Ce message veut tout et rien dire. Derrière, il y a soit un conflit de port, soit un fichier de configuration cassé, soit un antivirus qui bloque le processus.
Windows Defender et certains antivirus bloquent silencieusement httpd.exe et mysqld.exe. Ajoutez le dossier XAMPP aux exclusions. Testez en désactivant temporairement le pare-feu pour identifier le coupable.
Autre cause classique : un fichier httpd.conf mal édité. Une virgule en trop, un chemin Windows avec des antislashs non échappés, et Apache refuse de démarrer. Vérifiez le fichier xampp/apache/logs/error.log : la ligne d’erreur exacte y figure avec le numéro de ligne.
Changer la version de PHP dans XAMPP sans tout casser
Utiliser une version spécifique de PHP dans XAMPP est une demande courante : votre projet tourne sous PHP 7.4, mais XAMPP embarque PHP 8.2. Vous téléchargez la version voulue sur le site officiel de PHP (windows.php.net), vous remplacez le dossier php dans le répertoire XAMPP, et vous mettez à jour php.ini si nécessaire.
Erreur fréquente : oublier de copier le fichier php.ini de la nouvelle version, ou garder l’ancien libmysql.dll incompatible. Résultat : Apache démarre mais PHP plante au premier appel MySQL. Copiez toujours les DLL qui accompagnent la version.
php.ini : augmenter la limite de téléchargement de fichiers
Pour uploader des fichiers volumineux dans XAMPP, éditez xampp/php/php.ini. Cherchez upload_max_filesize et post_max_size. Passez-les par exemple à 64M et 128M. Pensez aussi à max_execution_time et memory_limit si vous traitez des fichiers lourds.
Redémarrez Apache après modification. Sinon, rien ne change. C’est bête, mais on l’oublie tout le temps.
Certificat SSL local et erreurs HTTPS dans XAMPP
Par défaut, XAMPP fournit un certificat auto-signé. Chrome et Firefox affichent un avertissement de sécurité. Ce n’est pas un bug, c’est normal. Pour éviter ça, générez un certificat local avec mkcert et déclarez-le comme autorité de certification de confiance dans votre système. Vous aurez un HTTPS propre sur localhost.
Si le port 443 est déjà utilisé par un autre service, vous verrez l’erreur « port 443 already in use ». Changez-le en 8443 dans httpd-ssl.conf et adaptez vos URLs.
Quand tout échoue : la méthode brutale mais efficace
Si Apache refuse toujours de démarrer après avoir vérifié les ports, les privilèges, les logs et les fichiers de configuration, il reste une option : sauvegarder vos projets web (dans htdocs), sauvegarder vos bases (dossier data), désinstaller XAMPP, supprimer le dossier résiduel, et réinstaller proprement.
Mais avant ça, testez une dernière chose : lancez apache_start.bat directement depuis l’invite de commandes. Vous verrez l’erreur réelle en temps réel, sans filtre. C’est souvent là qu’on découvre qu’un module manque ou qu’un chemin est faux.
XAMPP n’est pas magique, mais il est fiable quand on respecte ses contraintes. La plupart des erreurs bloquantes viennent d’un port occupé, d’un manque de droits administrateur, ou d’un fichier de config édité à la va-vite. Corrigez ces trois points, et vous ne verrez plus Apache rouge.