Wie installiert man XDebug mit PHPUnit auf einem Mac OS X 10.6
Ich benutzte einen Mac und Snow Leopard 10.6 für Webentwicklungen.
Der Mac bringt PHP 5.3 und einen zeitgemäßen Apache 2.2 mit.
Leider hat man mit dem vorkonfiguriertem Mac keine Möglichkeiten PHP zu testen oder zu debuggen.
Ich möchte zeigen, wie man auf einfachem Wege diese Funktionalität nachrüsten kann.
Durch die Installation von PHPUnit und einer XDebug Bibliothek lässt sich der Mac auch zum Testen und Debuggen von PHP nutzen.
IDE
Als IDE habe ich mich für Netbeans entschieden. Netbeans ist open source bringt inzwischen eine Hilfe für PHP mit. Netbeans läuft trotz Java auf meinem Macbook ausreichend schnell.
Anbei ein Screenshot der Netbeans beim Debugging von Joomla zeigt.
Ich gehe davon aus, dass PHP und Apache wie in meinem anderen Artikel schon konfiguriert sind und funktionieren.
Installation von PHPUnit und Pear
Zuerst möchten wir PHPUnit installieren. Dazu ist es allerdings notwendig im Vorfeld die neueste Version von PEAR zu installieren.
Installation Pear
Um in das Verzeichnis /usr/local zu wechseln rufen wir in der Kommandozeile folgenden Befehl auf:
$ cd /usr/local
Als nächstes können wir Pear installieren:
$ curl "http://pear.php.net/go-pear" | sudo php
Geben Sie Ihr Administrator Passwort für den sudo (superuser) - Befehl ein. Danach können Sie unter Bestätigung der Default-Konfigurationsvorschläge Pear installieren.
Aktualisieren des Pfads
Überprüfen Sie, ob in Ihrem Profile der Pfad zu /usr/local/bin gesetzt ist. Dazu öffen Sie die Profildatei mi vi (oder einem Editor Ihrer Wahl)
$ vi ~/.profile
Der Pfad sollte “/usr/local/bin beinhalten”:
export PATH="/usr/local/mysql/bin:/usr/local/bin:$PATH"
Der Befehl:
$ which pear
in der Kommandozeile sollte /usr/local/bin/pear ausgeben.
Aktualisieren des PHP-include Pfades
Öffnen Sie die Datei php.ini im vi
$ vi /etc/php.ini
In der Sektion:
; Paths and Directories ;
entfernen wir das Semikolon von der Zeile
;include_path = ”/php/includes”
und fügen den Pfad /usr/local/PEAR hinzu.
Danach sollte die Zeile wie folgt aussehen:
include_path = ”/usr/local/PEAR:/php/includes”
Der Apache ist nun neu zu starten
$ sudo apachectl restart
Installation von PHPUnit
Als nächstes installieren wir PHPUnit. Dazu rufen wir in der Kommandozeile folgenden Befehl auf:
$ sudo pear channel-discover pear.phpunit.de
Danach installieren wir PHPUnit
$ sudo pear install phpunit/PHPUnit
Danach ist PHPUnit in /usr/local/PEAR/PHPUnit/ installiert.
Zur Nutzung von PHPUnit in Ihrem Quellcode müssen sie die Datei referenzieren.
require_once 'PHPUnit/Framework.php';
Installation von XDebug
XDebug ist ein ein Tool zum Debuggen und der Laufzeitanaylse für PHP.
XDebug erweitert PHP Fehlermeldungen um Informationen wie einen Stacktrace, also eine Auflistung der Variablen der aktiven Funktion samt Wert. Um XDebug nicht kompilieren zu müssen werden wir eine vorkompilierte Version von ActiveState benutzen. Öffnen Sie die folgende URL in Ihrem Webbrowser:
http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging
Nach dem Download können sie das Archiv entpacken.
Es zeigt sich die folgende Verzeichnisstruktur:
Wir benötigen die xdebug.so Datei aus dem Verzeichnis 5.3.
Gehen Sie in der Kommandozeile in das Verzeichnis wo die Datei liegt. Nun kopieren Sie die Datei in das Zielverzeichnis
/usr/lib/php/extensions/no-debug-non-zts-20090626
Überprüfen Sie vorher mit
$ ls /usr/lib/php/extensions
ob das Verzeichnis existiert.
Ansonsten ist unter /usr/lib/extensions ein Verzeichnis zu lokalisieren, das ähnlich wie no-debug-non-zts-20090626 heißt. Dies ist dann das Zielverzeichnis.
$ sudo cp xdebug.so /usr/lib/php/extensions/no-debug-non-zts-20090626
Danach müssen wir wieder die Datei /etc/php.ini mit vi editieren und foldende Einträge hinzufügen.
[xdebug] zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
Zum Schluss muss der Apache wieder mit
$ sudo apachectl restart
neu gestartet werden.
Das war’s.