Xdebug mit Netbeans nutzen

Netbeans-meets-XdebugBeim Entwickeln von PHP Anwendungen, kommt man meiner Meinung nach um einen anständigen Debugger nicht vorbei. Ich habe auf meinen Testsystemen deshalb immer Xdebug installiert. Das allein hilft schon eine Menge Fehler zu finden.

Doch die Kombination von Xdebug mit der Netbeans IDE, macht erst ein richtige Entwicklungsumgebung daraus. Die Konfiguration ist denkbar einfach.

Zunächst muss Xdebug installiert werden (z.B. wie hier beschrieben). Wichtig sind die folgenden Einstellungen:

...
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
...

Diese werden dann in Netbeans unter „Extras > Optionen > PHP > General“ wie im Screenshot eingetragen.
Netbeans-Optionen-PHP-Xdebug

Hinweis: Das Häkchen vor „Stop at First Line“ kann auch entfernt werden, wenn man selbst Haltepunkte definiert hat bzw. das Script nicht Zeilenweise durchgehen will.

Nun kann man in Netbeans über das Menü oder Strg+F5 sein Projekt Debuggen. Über die verschiedenen Debugger Fenster kann man jetzt Informationen über Variablen während der Laufzeit einsehen und sogar modifizieren. Auch die Aufrufstapel, Haltepunkte, usw. kann man sich in Form von Fenstern in der IDE ansehen. (siehe Screenshot)
Netbeans-Debugger-Fenster

Weitere Informationen zum Thema:
http://www.netbeans.org
http://www.xdebug.org

Xdebug für PHP5 unter Ubuntu installieren

Zuerst muss Sollte man sicherstellen ob Xdebug installiert ist. Sollte das nicht der Fall sein kann das mit folgendem Befehl nachgeholt werden.

$ sudo apt-get install php5-xdebug

Jetzt muss die Konfigurationsdatei bearbeitet werden.

$ sudo nano /etc/php5/apache2/conf.d/xdebug.ini

Die Datei sollte dann in etwa so aussehen:

zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.idekey=netbeans-xdebug

Natürlich sind das nicht alle Möglichkeiten. Eine Komplette Liste der Einstellungen findet sich in der Dokumentation.

Am Ende den Apachen neu starten und schon kann es losgehen.

$ sudo /etc/init.d/apache2 restart

Weitere Informationen zum Thema:
http://www.xdebug.org/docs/all_settings

Apache2 Modul mod_rewrite unter Ubuntu aktivieren

Das Apache2 Modul mod_rewrite wird von vielen Seiten für benutzerfreundliche URLs genutzt. Auch eine gewisse Suchmaschinenfreundlichkeit kann man nicht absprechen.

Um das Modul unter Ubuntu zu aktivieren muss man einen Symbolischen Link des Moduls in /etc/apache2/sites-enabled/ erzeugen. Einfacher und mit weniger Schreibarbeit ist dieser Befehl:

$ sudo a2enmod rewrite

Damit das Modul auch korrekt arbeitet, muss in der Konfiguration für die entsprechende Site die Variable AllowOverride auf All gesetzt werden. Diese befindet sich in der/den entsprechenden <Directory> Sektion/en. Z.B. in hier:

$ sudo nano /etc/apache2/sites-available/default

Am Ende den Apachen einfach neu starten und schon kann es losgehen.

$ sudo /etc/init.d/apache2 restart

Dienste unter Ubuntu 10.04 Netbook Edition deaktivieren

Die Installation eines Apache auf einem Netbook ist nur bedingt sinnvoll. Kann aber zum Testen von ein paar Skripten unterwegs durchaus nützlich sein. Da der Apache allerdings nicht die ganze Zeit benötigt wird, wollte ich das Starten des Dienstes beim Systemstart deaktivieren. Unter der Desktop Variante von Ubuntu (Gnome) habe ich das bisher unter System -> Systemverwaltung -> Dienste erledigt. Doch zu meinem entsetzen gibt es diesen Menüpunkt unter Ubuntu 10.04 Netbook Edition nicht.

Da ich allerdings auch keine Lust hatte die Startscripte per Hand anzupassen musste eine alternative her: rcconf.

sudo apt-get install rcconf
sudo rcconf

Dieses Programm ist selbsterklärend. Einfach Häkchen am gewünschten Dienst setzen oder entfernen, Fertig!