PHP-Debuggen mit Eclipse

Aus LagoWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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.

Persönliche Werkzeuge
Lagopixel