XAMPP blijft een van de populairste lokale serveromgevingen voor ontwikkelaars, maar elk jaar zie ik dezelfde klachten terugkomen: Apache start niet, MySQL crasht, poort 80 is bezet. En telkens blijkt dat het niet aan XAMPP ligt, maar aan hoe je het gebruikt. In 2026 is dat niet anders. Hieronder leg ik uit wat je verkeerd doet, waarom dat fouten veroorzaakt en hoe je het oplost zonder uren te verspillen.
Waarom XAMPP niet opstart in Windows (en het bijna nooit aan XAMPP ligt)
De hoofdschuldige is bijna altijd een poortconflict. Apache wil standaard luisteren op poort 80 en 443. Windows zelf gebruikt poort 80 regelmatig voor IIS of de HTTP.sys-service. Skype, Teams en zelfs sommige VPN-clients pikken poort 443 in.
Als je XAMPP opstart en Apache weigert, is de kans groot dat je het probleem zoekt in de configuratie terwijl je gewoon een andere service moet stoppen. Dit is de fout die je ontwikkeling het vaakst stillegt.
Oplossing: open de opdrachtprompt als administrator en voer netstat -ano | findstr :80 uit. Je ziet welke PID de poort bezet. Via Taakbeheer kun je dat proces identificeren en stoppen, of je wijzigt de Apache-poort.
Poort 80 en 443 vrijmaken: de echte oplossing
Om de poort van Apache te wijzigen, open je httpd.conf in de map xampp/apache/conf. Zoek de regel Listen 80 en vervang die door Listen 8080. Zoek daarna ServerName localhost:80 en pas die aan naar ServerName localhost:8080.
Voor HTTPS doe je hetzelfde in httpd-ssl.conf in xampp/apache/conf/extra. Wijzig Listen 443 naar Listen 8443. Vergeet niet in httpd-vhosts.conf alle verwijzingen naar localhost:80 bij te werken.
Na het opslaan herstart je Apache. Als hij dan nog niet start, gebruik je opnieuw netstat -ano | findstr :8080 om te controleren of de nieuwe poort vrij is. Blijft het misgaan, dan heb je waarschijnlijk een firewallregel die de nieuwe poort blokkeert.
MySQL start niet: de fouten die je zelf veroorzaakt
MySQL-fouten zoals “MySQL shutdown unexpectedly” of “Unable to open process” komen meestal door drie dingen: poort 3306 is bezet, de my.ini is beschadigd, of je hebt geen beheerdersrechten. In Windows 10 en 11 speelt ook Windows Defender soms parten.
Controleer eerst of poort 3306 vrij is met netstat -ano | findstr :3306. Zo niet, stop het proces of wijzig de poort in my.ini in xampp/mysql/bin. Kijk daarna in xampp/mysql/data naar de mysql_error.log. Daar staat exact waarom MySQL stopt.
Een klassieke fout is dat je MySQL als service hebt geïnstalleerd via het XAMPP-configuratiescherm, maar daarna vergeet dat die service automatisch opstart bij het opstarten van Windows. Dan krijg je een conflict wanneer je XAMPP opnieuw start. Verwijder in dat geval de service via mysqld –remove mysql in de opdrachtprompt.
Apache-fouten die je ontwikkeling blokkeren
De melding “Apache is not started” in de interface betekent bijna altijd dat er iets misgaat tijdens het opstarten. De reden staat in xampp/apache/logs/error.log. Lees dat bestand voordat je iets anders probeert. Vaak zie je daar Address already in use of een syntaxisfout in httpd.conf.
Een andere veelgemaakte fout: je hebt een SSL-certificaatprobleem. XAMPP gebruikt een zelfondertekend certificaat dat browsers als onveilig markeren. Dat is geen bug, maar een beveiligingsinstelling. Je lost het op door het certificaat te vertrouwen in je browser of door een lokaal certificaat te genereren met mkcert.
Als Apache onverwacht afsluit zonder duidelijke fout, controleer dan of je niet per ongeluk een module hebt ingeschakeld die niet compatibel is. In httpd.conf kun je modules uitschakelen door een # voor de LoadModule-regel te zetten. Test daarna opnieuw.
PHP-versie wijzigen en uploadlimieten aanpassen
Wil je een specifieke PHP-versie gebruiken? Download die van de officiële PHP-website en vervang de map php in de XAMPP-installatie. Vergeet niet php.ini bij te werken en Apache te herstarten.
Voor het verhogen van uploadlimieten open je php.ini in xampp/php/ en pas je upload_max_filesize en post_max_size aan. Standaard staat dit op 2M en 8M. Zet het op 64M of hoger als je met grote bestanden werkt. Herstart Apache daarna.
UAC en beheerdersrechten: de stille killer
Gebruikersaccountbeheer (UAC) blokkeert XAMPP regelmatig. Je kunt UAC volledig uitschakelen via Configuratiescherm > Gebruikersaccounts > Instellingen voor gebruikersaccountbeheer wijzigen. Zet de meldingen op “Nooit melding geven” en herstart.
Mijn advies: doe dit alleen als je weet wat je doet. Beter is om XAMPP altijd als administrator uit te voeren. Rechtermuisknop op het XAMPP-icoon en kies “Als administrator uitvoeren”. Dat voorkomt de meeste rechtenproblemen zonder je systeem onveilig te maken.
Wat te doen als niets werkt
Als je alle bovenstaande stappen hebt geprobeerd en Apache of MySQL start nog steeds niet, dan is er iets structureel mis. Verwijder XAMPP volledig, inclusief de mappen in C:xampp en eventuele resten in het register. Download de nieuwste versie van de officiële XAMPP-site en installeer opnieuw.
Een alternatief dat ik zelf vaak aanraad: stap over op Laragon of LocalWP. Die zijn in 2026 gebruiksvriendelijker en hebben minder last van poortconflicten. XAMPP is prima voor beginners, maar als je dagelijks ontwikkelt, kost het je te veel tijd.
Kort samengevat: XAMPP-fouten zijn bijna altijd poortconflicten, rechtenproblemen of beschadigde configuratiebestanden. Lees de logs, controleer je poorten en werk als administrator. Doe je dat niet, dan blijf je vastlopen in dezelfde fouten die je ontwikkeling stoppen.