Als Entwicklungs-Hardware sind Macs momentan ziemlich beliebt, läuft doch auf diesen Alu Beauties ein Betriebssystem, das auf Unix basiert.
Ein weiterer Grund dafür dürfte auch sein, dass die Entwicklungsumgebung Eclipse auf MacOs gut unterstützt wird. Dies gilt vor allem für Java (mit dem Java Development Tool – JDT). Aber auch PHP Webanwendungen lassen sich gut mit Eclipse und dem PHP Development Tool – PDT programmieren.
Das PDT bringt keinen eigenen PHP Interpreter mit. D.h., man muss selbst für einen Webserver mit PHP Modul sorgen. Auf dem Mac bekommt man das Rundum Sorglos Paket mit MAMP.
Möchte man auch PHP Scripts unter Eclipse ausführen, muss man die beiden miteinander bekannt machen. Doch zuvor verlangt Eclipse PDT nach einem Debugger. Zur Auswahl stehen der Zend Debugger, der leider nicht mit MAMP mitgeliefert wird und XDebug, dessen Modul zwar in MAMP integriert ist, bei mir aber nicht funktionierte.
Eine aktuelle Version von XDebug kann man sich über brew installieren.
brew install xdebug
Brew setzt zwar Xcode voraus, sollte aber auf keinem Entwickler-Mac fehlen. Eine Installationsanleitung gibt es auf github.
Doch zurück zu XDebug. Während der Installation wird man auf die nächsten Schritte hingewiesen:
To use this software: * Add the following line to php.ini: zend_extension="/usr/local/Cellar/xdebug/2.1.1/xdebug.so" * Restart your webserver. * Write a PHP page that calls "phpinfo();" * Load it in a browser and look for the info on the xdebug module. * If you see it, you have been successful!
Die php.ini, die MAMP mitbringt, lässt sich nicht mit normalen User Rechten editieren. Mit sudo geht es aber schon.
sudo vi /Applications/MAMP/bin/php/php5.3.6/conf/php.ini
Im Bereich [xdebug] dann die Direkive für das xdebug Modul hinzufügen:
[xdebug] zend_extension="/usr/local/Cellar/xdebug/2.1.1/xdebug.so"
den Webserver durchstarten und den Erfolg wie oben beschrieben kontrollieren.
Funktioniert alles, muss man in Eclipse nur noch in den Einstellungen ein PHP Executeable konfigurieren um von dort aus PHP Scripts starten zu können.