Xdebug unter Windows einrichten

Xdebug verwende ich jetzt schon seit einiger Zeit, um PHP unter Windows zu Debuggen mit PHPStorm. Da ich schon einigen Leuten geholfen haben Xdebug einzurichten und zur Dokumentation meiner Einstellungen, schreibe ich dieses kleine Tutorial.

Voraussetzung ist hierfür ein lokal installierter Webserver mit PHP. Die Xdebug Konfiguration sollte nicht nur mit PHPStorm funktionieren (Dafür muss der „idekey“ entsprechend angepasst werden).

Für die Einrichtung benötigen wir die php_xdebug.dll die man hier passend zu seiner PHP Version herunterladen kann. Meistens wird dies die TS (ThradSafe) Version sein (Kann man auch daran erkennen wenn man PHP als Apache Module läuft). Die dll habe ich bei mir in das PHP Unterverzeichnis „extras“ entpackt.

Jetzt muss noch die „php.ini“ bearbeitet werden und um folgenden block ergänzt werden:

[XDebug]
zend_extension = "C:/php/extras/php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_connect_back = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_enable = 0
xdebug.profiler_output_dir = "C:/Temp/profiler"
xdebug.idekey = PHPSTORM
xdebug.default_enable = 0
xdebug.scream = 1

Die Beschreibungen zu den Einstellungen findet man hier im Prinzip ist aber alles so eingestellt das Xdebug nur ausgeführt wird wenn es durch einen Cookie oder URL Parameter aktiviert wird. Ich benutze dazu in Chrome den Xdebug Helper. Dort wählt man in den Optionen auch nur Die IDEKey aus und kann dann noch einstellen bei welchen Domains das Tool in der Adressliste des Browsers angezeigt werden soll.

Wenn man PHP Scripte auf Kommandozeile Debuggen will muss man einen Eintrag in den Umgebungsvariablen von Windows hinzufügen. Dieser lautet:

Name: XDEBUG_CONFIG
Wert: remote_enable=1 remote_mode=req idekey=PHPSTORM

In PHPStorm muss man bevor man mit dem Debuggen beginnt nur noch den Knopf für „Start Listening for PHP Debug Connections“ drücken und seine Breakpoints setzen.

Happy Debugging


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert