Drucken

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.

Netbeans debugging Joomla

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:

Xdebug von Activeate

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.

Joomla3 Appliance - Powered by TurnKey Linux