PHP 5.2 statt PHP 5.3 im Snow Leopard mit XAMPP

Da ich mittlerweile gerne drush für Drupal benutze habe ich für meine lokale Umgebung auch drush installiert (ein ausführlich Beschreibung hierzu wird noch folgen).

Mit dem Update auf Snow Leopard ist jetzt mittlerweile PHP 5.3 im System integriert. Da das Drupal nicht sonderlich mag, da viele Module, wie z.B. eben Drush, (noch) nicht auf PHP-5.3-tauglichkeit gepatched wurden.
Das lokale Ausführen von Drush verursachte also immer ein paar Fehler (bzw. Warnungen).

Die PHP Version im Mac erhält man im Terminal über den befehl php -v.

Da ich nebenbei aber auch XAMPP laufen habe, welches noch PHP-5.2.9 nutzt in meinem Falle, konnte ich mir nun diesen Umstand zu nütze machen.

Auffinden von php in XAMPP

Mein XAMPP-Installation findet sich im /Applications-Verzeichnis, dort liegt php unter

  /Applications/XAMPP/xamppfiles/bin/php

als smylink auf php-5.2.9 was sich im gleichen verzeichnis befindet.

Liste der bin Verzeichnisse

Nach dem öffnen des Terminal kannst du per alias $PATH die aktuellen Verzeichnisse auflisten. Sie sind in der Anzeige durch : getrennt.

Beispiel:

/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/opt/subversion/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/usr/X11R6/bin

Das im Mac OS X installierte php sollte im Verzeichnis /usr/bin liegen.
Die in für $PATH ausgegebene Liste wird in dieser Reihenfolge nach Scripten durchsucht, und findet also in /usr/bin auch php. Um nun dies zu verhindern muss also php schon vorher gefunden werden.

Bei mir befindet sich /opt/local/bin in der Liste vor /usr/bin. Dort werden wir nun php einbinden.

Alias für xampp PHP

Das machen wir mit einem symlink den wir in /opt/local/bin erstellen, nach dem format ln -s source_file target_file
Die Quelle (source_file) ist die Datei im XAMPP ordner, das Ziel ist der neue Alias im /opt/local/bin.

Der Befehl lautet daher:
ln -s /Applications/XAMPP/xamppfiles/bin/php /opt/local/bin.

Somit startet nun php in der in XAMPP installierten Version, in meinem Falle 5.2.9. Drush funktioniert für mich jetzt auch wieder optimal.