Hallo,
nach einiger Zeit rumprobieren, habe ich es nun geschafft IP-Symcon dazu zu bringen mit xdebug zusammenzuarbeiten. Aus diesem Grund hier eine kurze Anleitung. Was ich leider (bisher?) nicht geschafft habe ist xdebug dazu zu bringen per PHP-Code die Verbindung zum Debug-Client aufzubauen.
Schritt 1: xdebug-DLL downloaden
Unter http://xdebug.org/download.php kann findet man die Windows-Releases von xdebug. Man braucht eine VC9 TS (32 bit)-Version. Zusätzlich muss die PHP-Version der DLL zu IP-Symcon passen. Die Version von PHP erhält man mit dem PHP-Befehl phpinfo(); Einfach in ein Script einfügen und dieses ausführen.
Ich habe für meine Installation die xdebug-Datei (Version Xdebug 2.2.3) „PHP 5.4 VC9 TS (32 bit)“ heruntergeladen.
Schritt 2: xdebug-DLL im IP-Symcon-Verzeichnis ablegen
Wichtig ist, dass Ihr die DLL nicht im Verzeichnis ext (z.B. C:\IP-Symcon\ext) ablegt. Wenn die DLL dort liegt, dann versucht IP-Symcon diese als PHP-Extension zu laden, was für xdebug nicht korrekt ist. Ich habe unter „ext“ das Verzeichnis Zend angelegt und die DLL dort abgelegt. Somit:
C:\IP-Symcon\ext\zend\php_xdebug-2.2.3-5.4-vc9.dll
Schritt 3: php.ini anpassen:
Die php.ini von IP-Symcon liegt im Root-Verzeichnis der Installation. Bei mir ist der Pfad „C:\IP-Symcon\php.ini“. Diese mit einem Editor (z.B. notepad++) öffnen, und folgendes in die Datei einfügen (bitte die Pfade gegebenfalls anpassen):
[xdebug]
zend_extension = "C:\IP-Symcon\ext\zend\php_xdebug-2.2.3-5.4-vc9.dll"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_mode=jit
xdebug.remote_autostart=0
xdebug.idekey=default
xdebug.remote_log="c: emp\xdebug\xdebug.log"
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0
xdebug.profiler_enable=1
xdebug.profiler_output_dir ="c: emp\xdebug"
Schritt 4: Ip-Symcon-Service neu starten
Hierzu in unter Systemsteuerung->Verwaltung auf Dienste doppelklicken und „IP-Symcon Environment“ suchen. Rechte Maustaste in im Kontext-Menu „Neu starten“ auswählen.
Schritt 5: Einen Debug-Client installieren
Ich verwende Notepad++ und das Plugin DBGp. Download-Pfade:
Notepad++: http://notepad-plus-plus.org/
DBGp-Plugin: http://sourceforge.net/projects/npp-plugins/files/
Zuerst Notepad++ installieren und dann das Plugin (dbgpPlugin.dll) in das Verzeichnis „plugins“ der Notepad+±Installation entpacken.
Schritt 6: DBGp-Plugin konfigurieren
Notepad++ starten und dann im Menu Erweiterungen->DBGp->Config… auswählen. Dort folgendes eintragen:
Schritt 7: Debug-Plugin starten
Im Menu von Notepad++ auf Menu Erweiterungen->DBGp->Debugger klicken
Schritt 8: Debuggen!
Zu testen z.B. ein fehlerhaftes Script in IP-Symcon erstellen.
<?
$i = 100 / 0;
?>
Anschliessend auf „Ausführen“ klicken. Euer Script wird nun ausgeführt, läuft aber nicht zu Ende, da xdebug, die Verbindung Notepad++ aufgebaut hat:
Das Script läuft erst zu Ende, wenn Ihr im Notepad++ im Debuggerbereich auf „Run“ klickt.
Schritt 9:
sich freuen!
Was mir jetzt noch fehlt ist eine Möglichkeit „fehlerfreie“ Scripts zu debuggen. Hierfür müsste es eine Möglichkeit geben per xdebug Funktion den Remote-Debugger zu starten. Ich habe aber keine entsprechende Funktion gefunden. „xdebug_break()“ funktioniert leider nicht!! Ich versuche eine Lösung zu finden.
Viel Spaß!!