Remotedebugging mit xdebug und Netbeans unter Ubuntu
Um Debugging auf einem virtuellen Ubuntu-Webserver zu ermöglichen, bedarf es nur weniger Schritte.
Um Debugging auf einem virtuellen Ubuntu-Webserver zu ermöglichen, bedarf es nur weniger Schritte.
##1. Teil – xdebug einrichten
Im ersten Schritt, werden 2 Module benötigt:
sudo apt-get install php5-dev php-pear
Im nächsten Schritt wird xdebug installiert:
sudo pecl install xdebug
Falls noch nicht “make” installiert wurde, sollte man dies vorher nachholen :)
Der Installer meldet dann:
You should add "extension=xdebug.so" to php.ini
Man sollte sich aber nicht blenden lassen und dem einfach vertrauen (es geht nämlich nicht :) ). Deshalb suchen wir nach der “xdebug.so”, um die Extension als Zend-Extension in der php.ini einzutragen:
find / -name 'xdebug.so' 2 > /dev/null
#Ausgabe:
/usr/lib/php5/20090626/xdebug.so
Den gefundenen Pfad kopieren wir anschließend und bearbeiten die php.ini:
sudo vi /etc/php5/apache2/php.ini
In dieser Datei fügen wir folgende Parameter ein:
[xdebug]
; xdebug-ext
zend_extension="/usr/lib/php5/20090626/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=[IP-ADRESSE des Clients, welcher Netbeans ausführt]
xdebug.remote_port=9000
Ausschlaggebend sind die Parameter:
zend_extension: der gefundene Pfad zur xdebug.so
xdebug.remote_host: Die IP-Adresse des Clients, welcher Netbeans benutzt
Letztlich wird der Apache-Server neugestartet und Netbeans eingerichtet.
/etc/init.d/apache2 restart
2. Teil – Netbeans einrichten
Ein neues Projekt anlegen:
Pfad wählen (in diesem Beispiel ist das Laufwerk W: per Samba mit dem virtuellen Server{ Bsp.-IP-Adresse: 192.168.1.30 } verbunden):
Konfiguration abschließen
Unter Tools » Options » PHP noch die xdebug-Einstellung prüfen und es kann los gehen
Nachtrag:
Sollte folgende Meldung erscheinen, wenn man auf einen entfernten Rechner debuggt:
Es könnte die Windows-Firewall diesen Fehler verursachen. Daher sollte daher sicherstellen, das der gewählte Port in der Firewall freigeschalten ist, oder das Netzwerk im Heimnetzwerk befindet.