Debuggen mit xdebug und Docker
Basierend auf dem Tutorial Contao mittels Docker-Container einrichten möchte ich das Debuggen von PHP innerhalb von Docker-Container zeigen.
Basierend auf dem Tutorial Contao mittels Docker-Container einrichten möchte ich das Debuggen von PHP innerhalb von Docker-Container zeigen.
IP-Adresse auslesen
Zum Debuggen benötigen wir die lokale IP-Adresse. Diese können wir mittels ifconfig auslesen. Meist ist es der Standard-Adapter eth0. Für mein Tutorial benutze ich eine VM und finde meine IP-Adresse unter dem Adapter ens33:
Wir tragen die ausgelesene IP-Adresse in die docker-compose.yml ein:
...und lassen erneut alle Container neu erstellen - somit werden die Umgebungsvariablen neu gesetzt.
docker-compose build && docker-compose up
Verbindung zu xdebug
Innerhalb von PhpStorm öffnen wir die Settings (STRG + S) und tragen den Debug-Port 9001 in die Debug-Einstellungen ein:
Um anschließend den DBGp Proxy einzurichten:
Im nächsten Schritt wird die Verbindung zum PHP-FPM Interpreter hergestellt. Das findet ihr unter Languages -> PHP -> CLI Interpretor.
Es öffnet sich ein weiteres Fenster und wir können einen CLI-Interpreter hinzufügen. Wir wählen "From Docker, Vagrant, VM, Remote..."
und konfigurien von der Docker Compose den php-fpm Service.
Nach einem kurzen "Checking PHP Installation..." werden uns die ermittelten Einstellungen angezeigt:
Debuggen starten
Wir öffnen beispielsweise den Firefox-Browser und installieren uns das Plugin "Xdebug helper".
Nach der Installation legen wir den IDE-Key auf docker-xdebug fest. Wir wechseln auf https://docker-contao.local und schalten den xdebug-Connector an.
Im PhpStorm müssen wir auch nur noch auf "Start Listening for PHP Debug Connections" einschalten und einen Breakpoint im Quellcode setzen.
Nach einem Refresh im Browser bleibt der Debugger an der gewünschten Stelle stehen und wir können den Code debuggen.
Happy Coding!