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

Verzeichnisse mit WinSCP synchronisieren

WinSCP LogoEin unter Windows entwickeltes Projekt auf einen „Produktiv“ Server zu laden kann doch mitunter recht umständlich werden. Gerade wenn der Server nur via SSH erreichbar ist.

Die meisten Entwicklungsumgebungen (in meinem Fall Netbeans IDE 6.9.1) können zwar mit SCP umgehen, oft ist aber noch mehr zu erledigen als einfach ein paar Dateien hochzuladen. Manchmal müssen Dateirechte gesetzt werden oder auch ein Script zum Bereinigen des Caches ausgeführt werden. Je nach Szenario kann die Liste der anschließenden Aufgaben recht lang werden.

Hilfe kann hier das Programm WinSCP bieten. Es bietet Windows Benutzern nicht nur eine einfache Oberfläche um Dateien per SCP zu kopieren, sondern kann auch mit Skripten umgehen.

Folgende Beispielkonfiguration führt eine Synchronisation zwischen einem lokalen Verzeichnis und einem „Produktiv“ Server durch. Nach dem Abgleich werden ein paar Skripts ausgeführt, bevor die Verbindung getrennt und das Programm beendet wird.

# Optionen setzen
option batch on
option confirm off

# Verbinden mit gespeicherter Verbindung
open  server01

# In Verzeichnis wechseln
cd /var/www

# Sync Local->Remote
synchronize remote D:\Projekte\ProjektName /var/www -delete

# Dateirechte setzen
call chown -R www-data:www-data /var/www

# Minimiert u. kopiert alle JS/CSS Dateien ins CDN
call /usr/scripting/minimize_css.pl
call /usr/scripting/minimize_js.pl

# Cache leeren
call /usr/scripting/clear_cache.sh

# Replikation anrollen
call /usr/scripting/sync_webserver.sh

# Verbindung trennen
close

# WinSCP schließen
exit

Um das Skript auszuführen wird das Programm wie folgt aufgerufen:

C:\Programme\WinSCP\winscp.exe /console /script=C:\…\winscp-script.txt

Das Skripting von WinSCP bietet noch eine Reihe anderer Möglichkeiten, die in der Dokumentation nachgelesen werden können.

Weitere Informationen zum Thema:
http://winscp.net/
http://winscp.net/eng/docs/scripting

tail für Windows – mit grafischer Oberfläche

Im ersten Teil habe ich das Programm tail für die Windows Kommandozeile vorgestellt. Heute will ich den einen grafischen Client Tail for Win32 nachreichen. Die letzte Version auf Sourceforge (4.2.6) stammt aus dem Jahr 2006 läuft aber trotzdem auf aktuellen Maschinen ohne Probleme.

Tail for Win32

Dieses nette kleine Programm bietet z.B. die Möglichkeit, mehrere Dateien gleichzeitig zu überwachen und in Workspaces zu organisieren. Eine der nützlichsten Funktionen ist für mich das Keyword Highlighting. Hiermit werden Stichwörter farblich hervorgehoben.

Tail for Win32 kann durch Plugins erweitert werden. Durch das Plugin Tail SMTP, welches ebenfalls unter den Downloads auf Sourceforge zu finden ist, kann bei einem gefundenen Keyword auch eine Benachrichtigung via SMTP versand werden.

Alle Funktionen und Informationen sind auf der Projektseite zu finden.

Weitere Informationen zum Thema:
http://tailforwin32.sourceforge.net/

tail für Windows

Zum Überwachen von Logdateien, gibt es unter Linux das Programm tail. Mit dem Parameter -f aufgerufen zeigt es alle neuen Zeilen der Logdatei an. Dies kann z.B. hilfreich sein um Fehler in einer Webseite aufzudecken oder Änderungen zu kontrollieren. Unter Linux würde das etwa so aussehen:

$ tail -f /var/log/apache2/error.log

Wer unter Windows testet hat dieses Programm leider nicht Standardmäßig. Um tail auch unter Windows in der Shell zu nutzen, kann es aus den Windows Server 2003 Resource Kit Tools nachinstalliert werden.

Die Datei rktools.exe findet man auf der Windows Server 2003 CD oder zum Download bei Microsoft.com.

Windows Command Shell - tail

Ein Aufruf unter Windows würde dann etwa so aussehen:

C:\>tail -f c:\xampp\apache\logs\error.log

Hinweis: Damit tail direkt, also ohne in das Installationsverzeichnis des Resource Kits zu wechseln, genutzt werden kann, muss das Installationsverzeichnis (C:\Programme\Windows Resource Kits\Tools\) in die PATH Variable eingetragen werden.

Wie auch unter Linux, kann der Parameter -n genutzt werden, um die Anzahl der auszugebenen Zeilen festzulegen. Der folgende Aufruf würde die letzten 50 Zeilen der angegebenen Datei zurückliefern.

C:\>tail -n 50 c:\xampp\apache\logs\error.log

Weitere Informationen zum Thema:
Download: Windows Server 2003 Resource Kit Tools
http://www.microsoft.com/windowsserver2003/downloads/tools/default.mspx