Si tu passes tes journées à voir Apache clignoter en rouge dans le panneau de contrôle XAMPP, tu n’es pas maudit. Tu répètes juste les mêmes erreurs que 90% des devs qui installent XAMPP sous Windows sans lire une ligne de doc. Et la première, c’est de croire que XAMPP est un logiciel « qui marche tout seul ». Spoiler : non. XAMPP est un empilement de services (Apache, MySQL, PHP, FileZilla, Mercury) qui se battent pour les mêmes ports que Windows utilise déjà. Tant que tu n’as pas compris ça, tu vas empiler les erreurs.
Erreur n°1 : ne pas lancer XAMPP en administrateur
Windows moderne verrouille les ports bas (80, 443) et les services critiques. Si tu lances xampp-control.exe en double-clic normal, Apache n’aura pas les droits d’écrire dans les logs ni de binder le port 80. Résultat : « Apache shutdown unexpectedly » ou un démarrage en boucle.
La solution XAMPP la plus simple : clic droit sur le raccourci → Propriétés → Compatibilité → cocher « Exécuter en tant qu’administrateur ». Ça règle 30% des cas sans toucher un seul fichier de config.
Erreur n°2 : ignorer les conflits de ports (80, 443, 3306)
C’est LE classique. Skype, IIS, le service « World Wide Web Publishing », ou même un Docker Desktop lancé en arrière-plan squattent le port 80. Tu lances Apache, il meurt. Tu ne comprends pas.
Ouvre une invite de commandes en admin et tape :
netstat -ano | findstr :80
Tu obtiens un PID. Tape tasklist | findstr [PID] et tu sauras qui te vole le port. Sur Windows 11 24H2, c’est souvent le service « Windows Management Instrumentation » ou « Internet Information Services » qui tourne sans que tu le saches.
Deux options : tuer le service, ou changer le port d’Apache. Pour changer, ouvre xampp/apache/conf/httpd.conf, remplace Listen 80 par Listen 8080, puis ServerName localhost:80 par ServerName localhost:8080. N’oublie pas httpd-ssl.conf dans conf/extra pour le 443 → 8443, sinon HTTPS te pétera à la figure.
Erreur n°3 : croire que MySQL démarre toujours
« MySQL shutdown unexpectedly » est le message le plus googlé de l’univers XAMPP. La cause numéro un : MySQL a été fermé brutalement (coupure, crash Windows) et le fichier ibdata1 ou les logs ib_logfile0/1 sont corrompus.
Va dans xampp/mysql/data. Si tu vois des fichiers en double type ib_logfile0.bak, supprime-les et relance. Si ça ne suffit pas, sauvegarde le dossier data, copie le contenu de xampp/mysql/backup (XAMPP garde une base vierge) et redémarre MySQL. Tu perdras tes bases, mais au moins ça repart.
Autre piège : le port 3306 occupé par une instance MySQL déjà installée séparément (WAMP, MariaDB, MySQL Installer). Vérifie avec netstat -ano | findstr :3306 et change le port dans my.ini si besoin.
Erreur n°4 : empiler les versions de PHP sans prévenir Apache
Beaucoup téléchargent un PHP 8.3 depuis php.net et le copient dans xampp/php. Mauvaise idée si tu ne mets pas à jour httpd-xampp.conf et php.ini. Apache charge l’ancien module php8apache2_4.dll et refuse de démarrer avec « Cannot load php module ».
La bonne méthode : utilise plusieurs dossiers PHP (php81, php83) et modifie la ligne LoadModule php_module en pointant vers le bon .dll. Sinon, reste sur la version fournie par XAMPP, elle est testée.
Erreur n°5 : oublier de configurer upload_max_filesize
Tu bosses sur WordPress local, tu veux importer un thème de 12 Mo, et tu tombes sur « Le fichier dépasse la taille maximale ». Par défaut, XAMPP limite à 2 Mo. Dans xampp/php/php.ini, cherche upload_max_filesize et post_max_size et mets-les à 128M. Redémarre Apache, pas juste MySQL.
Et tant que tu y es, passe max_execution_time à 300, sinon tes scripts longs mourront en silence.
Erreur n°6 : se battre contre l’UAC au lieu de l’apprivoiser
Désactiver l’UAC complètement sous Windows 11 24H2 est une connerie. Ça ouvre ta machine à tous les scripts. La vraie solution pour XAMPP : crée une tâche planifiée qui lance XAMPP en admin au démarrage, ou utilise le planificateur de tâches avec privilèges élevés. Tu gardes la sécurité Windows ET XAMPP démarre sans pop-up.
Erreur n°7 : ne jamais lire les logs
90% des « XAMPP ne marche pas » se résolvent en ouvrant xampp/apache/logs/error.log et xampp/mysql/data/mysql_error.log. Le message exact y est écrit noir sur blanc. « Port already in use », « Can’t create/write to file », « InnoDB corruption »… Arrête de poster sur les forums avant d’avoir lu la dernière ligne du log.
Et si Apache affiche « Unable to open process » au démarrage de MySQL, c’est ton antivirus (Defender, Avast, Bitdefender) qui bloque le binaire mysqld.exe. Ajoute XAMPP aux exclusions, pas la peine de le désinstaller.
Les erreurs XAMPP que personne ne veut admettre
Installer XAMPP dans C:Program Files est une faute. Les espaces dans le chemin cassent certains scripts et les permissions Windows compliquent tout. Mets-le à la racine : C:xampp. Toujours.
Autre non-dit : XAMPP n’est pas fait pour la production. Jamais. Le panneau de contrôle, le user root sans mot de passe, tout est pensé pour le dev local. Si tu déploies ça sur un serveur public, tu te fais hacker en 48 heures. Pour de la prod, va voir du côté de Docker, Laragon, ou un vrai stack LEMP.
Enfin, si tu utilises des URLs amicales avec WordPress, Active mod_rewrite dans httpd.conf (enlève le # devant la ligne) et configure un VirtualHost propre dans httpd-vhosts.conf + le fichier hosts de Windows. Sinon tes permaliens renverront des 404 et tu accuseras WordPress à tort.
XAMPP n’est pas cassé. C’est toi qui lui demandes de faire des choses qu’il ne sait pas faire par défaut. Change les ports, lance en admin, lis les logs, et 95% de tes erreurs disparaissent. Le reste, c’est du Windows qui fait du Windows.