Wenn XAMPP unter Windows nicht startet, liegt das fast nie an XAMPP selbst. In 9 von 10 Fällen blockiert ein anderer Dienst die Ports 80, 443 oder 3306, oder du hast das Control Panel ohne Administratorrechte geöffnet. Das ist der XAMPP-Fehler Nummer eins, und er nervt gewaltig.
Ich habe jahrelang lokale Webserver eingerichtet, und die häufigste Ursache für XAMPP startet nicht ist IIS von Windows oder Skype, die sich heimlich Port 80 krallen. Bevor du irgendwas neu installierst, prüf das zuerst.
Ports prüfen: Der schnellste Weg zum XAMPP-Fix
Öffne die Eingabeaufforderung als Administrator und tippe:
netstat -ano | findstr :80
Wenn da ein PID auftaucht, gehört der Port einem anderen Prozess. Mit tasklist | findstr <PID> findest du heraus, welcher Dienst das ist. Diesen Dienst beendest du oder du änderst den Apache-Port.
Für den XAMPP Port ändern gehst du in xampp/apache/conf/httpd.conf, suchst Listen 80 und machst daraus Listen 8080. Dann noch ServerName localhost:80 auf ServerName localhost:8080 anpassen. Speichern, Apache neu starten, fertig.
Aber Vorsicht: Wenn du virtuelle Hosts nutzt, musst du auch in httpd-vhosts.conf alle Verweise auf localhost:80 auf den neuen Port umstellen. Sonst landest du im Nichts.
Apache startet nicht trotz freiem Port – was dann?
Manchmal ist der Port frei und Apache startet trotzdem nicht. Dann schau in xampp/apache/logs/error.log. Dort steht der echte Grund. Häufig ist es ein Syntaxfehler in der httpd.conf, den du beim Bearbeiten eingebaut hast.
Ein klassischer Fall: Du hast Listen 8080 gesetzt, aber irgendwo weiter unten steht noch ein Listen 80. Apache meckert dann nicht immer deutlich, sondern startet einfach nicht.
Regel Nummer eins bei XAMPP: Immer als Administrator starten. Ohne Adminrechte kann der Dienst keine Ports binden, und du siehst nur ein rotes „Apache is not started“.
Wenn du XAMPP als Administrator ausführst, aber Apache is not started bleibt, prüfe ob der Apache-Dienst als Windows-Dienst registriert ist. Manchmal kollidiert der Dienst mit dem Control-Panel-Start. Dann deinstallierst du den Dienst über das XAMPP-Control-Panel (Häkchen bei Apache entfernen) und startest Apache nur über das Panel.
MySQL shutdown unexpectedly – die echte Ursache
MySQL shutdown unexpectedly ist der zweithäufigste XAMPP-Fehler. Die Meldung klingt dramatisch, ist aber meist harmlos. Sie tritt auf, wenn MySQL beim Start abstürzt, weil die InnoDB-Logdateien beschädigt sind oder ein anderer MySQL-Dienst läuft.
Prüfe zuerst, ob Port 3306 belegt ist:
netstat -ano | findstr :3306
Wenn ja, beende den anderen MySQL-Dienst (oft von einer alten Installation) oder ändere in xampp/mysql/bin/my.ini den Port auf 3307. Dann im XAMPP-Control-Panel MySQL neu starten.
Hilft das nicht, schau in xampp/mysql/data nach der Datei mysql_error.log. Dort steht oft „InnoDB: Unable to lock ./ibdata1“ – das bedeutet, ein anderer Prozess hält die Datenbankdateien. Dann hilft nur: alle MySQL-Prozesse im Task-Manager killen und XAMPP neu starten.
Port 443 belegt: HTTPS in XAMPP reparieren
Der Fehler Port 443 already in use nervt besonders, weil Apache dann zwar startet, aber HTTPS nicht funktioniert. Schuld ist oft Skype, das Port 443 für eingehende Verbindungen nutzt, oder der Windows-Dienst „Web Deployment Agent“.
Die Lösung: Öffne xampp/apache/conf/extra/httpd-ssl.conf und ändere Listen 443 auf Listen 8443. Danach in der gleichen Datei alle Vorkommen von :443 auf :8443 anpassen. Rufe deine Seiten dann mit https://localhost:8443 auf.
Alternativ deaktivierst du Skype komplett oder stellst in den Skype-Einstellungen ein, dass es Port 80 und 443 nicht mehr verwendet. Das ist die sauberere Lösung, wenn du Skype nicht brauchst.
PHP-Version wechseln und Upload-Limit erhöhen
Wenn du eine bestimmte PHP-Version brauchst, reicht es nicht, nur den Ordner auszutauschen. Du musst die passende XAMPP-Version herunterladen oder den PHP-Ordner aus einer anderen XAMPP-Installation kopieren und dann php.ini anpassen.
Für größere Uploads änderst du in xampp/php/php.ini:
- upload_max_filesize = 64M
- post_max_size = 64M
- max_execution_time = 300
Danach Apache neu starten. Ohne Neustart liest PHP die Werte nicht neu ein – ein klassischer Anfängerfehler.
UAC, Firewall und Virenscanner als Störfaktoren
Die Benutzerkontensteuerung (UAC) kann XAMPP blockieren, besonders wenn du Apache als Dienst registrierst. Du musst sie nicht komplett deaktivieren, aber für lokale Entwicklung ist es oft die einfachste Lösung.
Gehe in die Systemsteuerung → Benutzerkonten → Einstellungen der Benutzerkontensteuerung ändern und stelle den Regler auf „Nie benachrichtigen“. Danach Neustart. Das ist ein Sicherheitskompromiss, aber auf einem Entwicklungsrechner vertretbar.
Firewall und Virenscanner blockieren manchmal den MySQL-Prozess. Der Fehler Unable to open process kommt genau daher. Füge XAMPP als Ausnahme in der Firewall hinzu oder deaktiviere den Echtzeitschutz kurz zum Testen.
Was tun, wenn nichts mehr hilft?
Wenn du alles probiert hast und XAMPP immer noch nicht startet, liegt es oft an einer zerschossenen Installation. Deinstalliere XAMPP komplett, lösche den verbleibenden xampp-Ordner und installiere neu – aber in einen Pfad ohne Leerzeichen und ohne Sonderzeichen, zum Beispiel C:xampp.
Ein Pfad wie C:Program Filesxampp macht wegen der Leerzeichen und der Windows-Berechtigungen regelmäßig Ärger. Das ist einer der häufigsten Gründe, warum XAMPP Fehler auftreten, die keiner versteht.
Und ganz ehrlich: Wenn du nur PHP testen willst, ist XAMPP 2026 nicht mehr die erste Wahl. Docker mit einem offiziellen PHP-Image oder Laravel Herd sind schlanker und machen weniger Port-Theater. Aber für den schnellen Einstieg bleibt XAMPP okay – solange du die Ports im Griff hast.