PhpStorm hat seit Anfang 2017 nun auch Docker-Support mit an Board. Anscheinend hat das jedoch nicht richtig funktioniert, weshalb das Tool nun wieder ohne Docker läuft. Gut so, denn so lassen sich CLI-Scripte nun (wieder) etwas leichter debuggen. Hier steht, wie’s funktioniert.
Meine Entwicklungsumgebung
Ich nutze seit Mitte 2016 Local als WordPress-Entwicklungsumgebung. Vormals hieß die App “Local by Flywheel” und “Pressmatics”. Damit lassen sich sehr einfach und schnell neue WordPress-Seiten als Docker-Container starten.
Konfiguration von XDEBUG 2.x und PHP 7.x:
Die Lösung ist denkbar einfach. Man muss lediglich
export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_port=9000 remote_host=192.168.5.41 remote_connect_back=0"
in der Konsole eingeben bevor man die WP-CLI bemüht. Wer will, kann noch remote_host=127.0.0.1
dazwischen hängen.
Konfiguration von PhpStorm
Nun muss nur noch PhpStorm richtig konfiguriert werden. Und das geht über Run > Webserver Debug Validation. Im neuen Fenster wählt man “Remote Web Server” aus und fügt dann die neue Seite.
Danach muss man lediglich noch unter Run > Start Listening for PHP Debug Connections auswählen und das war’s.
In der Konsole sollte man dann noch den “Server Namen” eingeben, der in PhpStorm hinterlegt wurde.
export PHP_IDE_CONFIG="serverName=meineseite.dev"
übergeben, wobei meinseite.dev mit dem Namen des Remote Web Servers ersetzt werden sollte.
Noch einfacher: Über die Bash oder SH-Script
Noch einfacher geht’s über einen eigenen Bash-Befehl, den man in die bash_profile-Datei einfügt: Gefunden hier.
Oder man baut sich ein eigenes Shell-Script und legt es im Docker-Container unter /usr/local/bin/wpd ab:
#!/bin/sh
export XDEBUG_CONFIG="remote_host=192.168.5.41"
export PHP_IDE_CONFIG="serverName=meinesete.dev"
wp --allow-root "$@"
unset XDEBUG_CONFIG
unset PHP_IDE_CONFIG
Konfiguration von XDEBUG 3.x und PHP 8.x:
Mit PHP 8 und höher sowie XDEBUG 3 geht das ganze etwas anders. Hier sieht die php.ini
-Datei schon ganz anders aus:
xdebug.mode=debug
xdebug.client_port="9003"
xdebug.start_with_request=trigger
xdebug.discover_client_host=1
xdebug.idekey=PHPSTORM
In der Konsole wird folgendes eingegeben:
export XDEBUG_SESSION=1
export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9003 remote_connect_back=0"
Das war’s! 😉