php xdebug mit atom

Ich verwende sehr gerne den Atom Editor .

Da ich nun wieder etwas mehr mit PHP arbeite, habe ich mir wieder etwas zeit genommen und mein Entwicklungs-System neu eingerichtet.

Ich verwende nun ein Debian 10 (noch testing – aber ich mag Debian einfach…) alias Buster mit einem nginx server und php7.3-fpm mit php-xdebug.

Natürlich habe ich auch noch weitere PHP-Pakete mit installiert, die aber für die Konfiguration mit xdebug keine Änderungen bedeuten würden.

In /etc/php/7.3/fpm/conf.d/20-xdebug.ini habe ich folgende Einstellungen eingetragen.

 zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1 # Not safe for production servers
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=false
xdebug.remote_log="/tmp/xdebug.log"

xdebug.remote_log hat mir dann sehr geholfen, als das ganze nicht so funktioniert hat, wie ich mir das vorgestellt hatte. Wenn das Debugging sauber funktioniert kann diese Zeile entfernt werden.

Der Port 9001 wurde gewählt, da die meisten PHP FPM-Installationen den Port 9000 bereits belegen.

Durch die Einstellung xdebug.remote_autostart=false wird der debugger nur aktiv, wenn ich das will. Dazu habe ich mir das Firefox-Plugin xdebug-helper installiert.
In den Einstellungen des Plugins muss der Wert für IDE-Key auf Other und der Wert auf xdebug-atom gesetzt werde

Mit den Icons (in der Adresszeile kann schnell der Debugger aktiviert oder deaktiviert werden)

Nun kann das Paket php-debug (mit Abhängigkeiten) im Atom Editor installiert werden.
Damit PHP Xdebug mit Atom kommuniziert, muss in den Einstellungen des php-debug paketes der Port auch auf 9001 geändert werden.

Spätestens wenn der PHP Debug Button aktiviert wird, muss Atom einen Port 9001 offnen.
Ob das so funktioniert prüft man am besten mit :

sudo lsof -i -n | grep :9001
atom 1643 wenger 70u IPv6 70130 0t0 TCP *:9001 (LISTEN)

Da hier IPv6 bei mir verwendet wird, hat mir die Ausgabe in /tmp/xdebug.log sehr geholfen. Gegebenenfalls muss dann die Xdebug config auch auf IPv6 geändert werden.

Anmerkung: Scheinbar klappt es auch, wenn IPv4 127.0.0.1 (xdebug) mit Atom :::9001 spricht, wenn diese Kommunikation nicht Firewall-technisch verhindert wird

Wenn ich nun Break-Points im Atom -Editor setze und die Seite im Browser lade (Debugging enabled) so kann ich wunderbar die PHP-Scripte debuggen und sogar Schritt für Schritt abarbeiten.

Ich freue mich schon auf die nächsten größeren PHP-Projekte.

Schreibe eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen