Die Tage knapp eine Stunde vor einer PHP-Anwendung gesessen, die im Browser einfach hing. Breakpoint gesetzt, Request abgeschickt, und dann: nichts. Kein Fehler, kein Timeout, nichts im IDE-Log. Nur Stille.
Was war los
PHPStorm hat aktuell einen Bug drin: wenn das Path-Mapping zwischen lokalem Code und Server (bei mir ein Container) nicht ganz exakt stimmt, nimmt die IDE die DBGp-Connection von XDebug zwar entgegen, ignoriert danach aber alles weitere. Kein Dialog, der das Mapping nachzieht, wie’s früher mal war. Die Anwendung wartet auf eine Rückmeldung, die einfach nicht kommt. Browser-Tab hängt, Worker-Process hängt, und ich saß dazwischen und wartete mit.
Stille beim Tooling ist halt der teuerste Bug. Nichts crasht, also sucht man am falschen Ende. Was mir in dem Moment fast immer Zeit spart: kurz xdebug.log=/tmp/xdebug.log in der php.ini setzen und das Log lesen. Wenn da steht, dass die Connection sauber aufgebaut und im selben Moment von der IDE wieder fallen gelassen wird, ist klar: es liegt an PHPStorms Mapping, nicht am Netzwerk oder am Container.
Was bis zum Fix hilft
Zwei Sachen müssen punktgenau stimmen:
Path-Mapping. Unter Preferences → PHP → Servers muss der lokale Pfad exakt dem Server-Pfad zugeordnet sein. Trailing-Slashes und Symlinks zählen mit. Wenn ich mir nicht sicher bin, lösche ich den Server-Eintrag einmal komplett und lege ihn neu an, damit kein altes Mapping noch irgendwo im .idea-Verzeichnis rumliegt.
ServerName. Der Name in den Server-Settings muss genau dem entsprechen, wie PHPStorm den Server identifiziert. Bei Web-Requests ist das der HTTP-Host. Bei CLI-Requests, Workern oder PHPUnit-Läufen im Container muss man den Namen explizit als Umgebungsvariable mitgeben: PHP_IDE_CONFIG="serverName=mein-server-name". Stimmt das nicht, fällt PHPStorm in seinen stillen Default-Pfad zurück, und der Hänger ist da. (Kleiner Hinweis am Rande: xdebug.idekey ist nicht der Server-Match-Schlüssel, sondern nur die Session-ID. Hab ich auch lange durcheinandergebracht.)
Fix kommt
Wer das gerade auch sieht: keine Sorge, du bist nicht allein. Bei JetBrains häufen sich aktuell die Bugmeldungen zu genau diesem Verhalten. In der 2026.2-EAP ist es schon gefixt, der Nachzieh-Dialog beim Verbindungsaufbau ist wieder da. Bis dahin halt zweimal hingucken.
Dank an den Kollegen, mit dem ich das zusammen ausgegraben hab.