PHP-Debuggen mit Eclipse
Aus LagoWiki
K (→Installation von xdebug auf einem Server) |
K (→Troubleshooting) |
||
Zeile 82: | Zeile 82: | ||
=== Troubleshooting === | === Troubleshooting === | ||
Nach der Installation kann mittels der Funktion phpinfo(); | Nach der Installation kann mittels der Funktion phpinfo(); | ||
+ | <source lang="php"> | ||
<?php | <?php | ||
phpinfo(); | phpinfo(); | ||
?> | ?> | ||
+ | </source> | ||
überprüft werden, ob xdebug läuft und wenn ja, mit welcher Konfiguration. | überprüft werden, ob xdebug läuft und wenn ja, mit welcher Konfiguration. |
Version vom 13:31, 24. Mär. 2008
Inhaltsverzeichnis |
Installation von XDebug auf einem Server
Diskussion
Der Vorteil eines Debuggers auf einem Produktiv-System, liegt darin, dass ein Entwicklungssystem so gut wie niemals genau die gleiche Konfiguration enthält, wie das Produktiv-System. Ganz abgesehen davon, dass Server meist auf Linux laufen und die Entwicklungsumgebung eine Windows-Umgebung sein kann. Bei einer typo3-Installation beispielsweise wird diese auf einem Linux-System mit Symlinks realisiert. Dieses in einer Windows-Umgebung nachzubauen ist recht schwierig, bzw. bringt einiges an Nachteilen mit sich.
Installation
(hier: auf einem Ubuntu-Linux-Server)
Sollte php5, mysql, und die gs-Bibliothek noch nicht installiert sein, geschieht dies mittels
apt-get install apache2 php5 php5-gd mysql-server php5-mysql
Als nächstes kommt die PHP-Entwicklungsumgebung, die Apache-Entwicklungsumgebung und PEAR.
apt-get install apache2-dev php5-dev php-pear make
Als letztes installieren wir xdebug mittels PHP's pecl
pecl install xdebug
Als nächstes müssen wir dem Apachen mitteilen, dass er die xdebug.so (gerade entstandene Bibliothek) benutzen soll. Dafür tragen wir in die /etc/php5/apache2/php.ini folgendes kurz bevor dem [Date]-Eintrag ein.
zend_extension=/usr/lib/php5/20051025/xdebug.so [debug] ; Remote settings xdebug.remote_autostart=off xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=[Host/dyndns des eigenen Rechners] xdebug.remote_port=9000 ; General xdebug.auto_trace=off xdebug.collect_includes=on xdebug.collect_params=off xdebug.collect_return=off xdebug.default_enable=on xdebug.extended_info=1 xdebug.manual_url=http://www.php.net xdebug.show_local_vars=0 xdebug.show_mem_delta=0 xdebug.max_nesting_level=100 ;xdebug.idekey= ; Trace options xdebug.trace_format=0 xdebug.trace_output_dir=/tmp xdebug.trace_options=0 xdebug.trace_output_name=crc32 ; Profiling xdebug.profiler_append=0 xdebug.profiler_enable=0 xdebug.profiler_enable_trigger=0 xdebug.profiler_output_dir=/tmp xdebug.profiler_output_name=crc32
Eigentlich wird unser Rechner nun als Server verwendet und der eigentlichen "Webserver" spielt in diesem Fall der Client. Dazu brauchen wir eine IP-Adresse, die von außen erreichbar ist, bzw. eine dynamische Adresse von http://dyndns.org. Diese tragen wir dann in obiger Konfiguration an die Stelle Host/dyndns des eigenen Rechners ein.
Als nächstes müssen wir den "Weg" zu unserem Rechner "freimachen". Dazu geben wir den Port 9000 auf unserem Rechner nach außen frei. Das geschieht beispielsweise in der FritzBox mit Einstellungen->Internet->Portfreigabe->Neue Portfreigabe. Dort einen Namen eingeben, TCP auswählen und den Port 9000 und die IP-Adresse des eigenen Rechners eintragen (zu bekommen mit Start->Ausführen->cmd->ipconfig /all).
Als nächstes wird die Firewall bzw. ZoneAlarm meckern. Dort dem Client (Eclypse, darauf komme ich noch) Serverrechte geben.
Konfiguration von Eclipse (PDT)
- Projekt (PHP) anlegen, dass die Datei- und Verzeichnisstruktur der des Servers nachbildet.
- Menü: Opend Debug Dialog -> PHP Web Page (Rechtsklick) -> New
- In dem Dialogfenster folgendes Einstellen:
- Server Debugger: XDebug
- PHP Server: New -> Servernamen und URL des Servers eitragen
- File: zu debuggendes File auswählen
- URL: Überprüfen, ob der Pfad mit dem Häkchen Auto Generate stimmt, ansonsten manuell anpassen
- Apply
- Debug
Falls die Debug-Ansicht nicht automatisch aufgeht, in diese Ansicht wechseln.
Nun kann mit F5/F6/F7 durch den Programmcode gewandert werden. Die jeweils aktive Zeile wird angezeigt und in einem seperaten Fenster die Aktuelle Belegung der Variablen.
Troubleshooting
Nach der Installation kann mittels der Funktion phpinfo();
<?php phpinfo(); ?>
überprüft werden, ob xdebug läuft und wenn ja, mit welcher Konfiguration.