FOL9000

php auf dem Mac aktivieren – mit mcrypt

von

Liest man Bücher zu WordPress, Magento und anderer PHP-basierter Software, kann man den Eindruck gewinnen, es habe sich immer noch nicht herumgesprochen, dass Apache und PHP bereits auf dem Mac installiert sind und nur noch aktiviert werden müssen. Zumindest wer Magento mit diesem vorinstallierten PHP laufen lassen will, hat aber ein kleines Problem: Magento erwartet die mcrypt-Library und die ist nicht Bestandteil der Standard-Installation. Dieser Beitrag fasst deshalb kurz zusammen, wie man PHP auf dem Mac aktiviert und mcrypt nachinstalliert. Grundlage ist dabei Snow Leopard 10.6.8.

Der ganze Prozess ist ein wenig aufwändig, lässt sich aber in einem Rutsch machen. Im wesentlichen besteht er aus folgenden Schritten:

  1. php aktivieren
  2. Xcode installieren
  3. libmcrypt compilieren und installieren
  4. mcrypt als PHP-Extension compilieren und installieren

 

PHP aktivieren

Die eigentliche Aktivierung von PHP lässt sich mit jedem Editor machen; weil die mcrypt-Integration aber notwendig am Terminal gemacht werden muss, gehe ich davon aus, dass gleich alles im Terminal erledigt wird.

PHP aktivieren heißt: Es in Apache integrieren. Entsprechend muss die Apache-Konfigurationsdatei angepasst werden. Die Konfigurationsdatei findet sich unter folgendem Pfad:

/private/etc/apache2/httpd.conf

Auch wenn die Änderung, die wir vornehmen wollen, minimal ist: Als erstes sollte man ein Backup der Datei machen. Wie und womit ist natürlich egal, deshalb gehts hier gleich weiter mit der nötigen Änderung. Irgendwo in httpd.conf findet sich die Zeile

#LoadModule php5_module libexec/apache2/libphp5.so

Am Anfang dieser Zeile einfach die Raute entfernen.

Was nun noch fehlt, ist ein Restart des Apache:

sudo apachectl restart

Damit ist PHP aktiv und man kann den ersten Test mit phpinfo() machen.

Wer mit PHP und MySQL arbeiten will, kann mit der Standard-Konfiguration übrigens ein Problem bei der Angabe der Connection bekommen: Der in der php.ini angegebene Socket-Wert ist falsch.
Dazu an anderer Stelle mehr.

Wenn nun PHP aktiv ist, kann es an die Integration vom libmcrypt/mcrypt gehen. Es reicht leider nicht, mcrypt von irgendwoher runterzuladen und irgendwohin zu kopieren. libmcrypt muss im Source-Code besorgt und selbst übersetzt werden. Aber keine Angst, ist alles ganz einfach – wer nicht weiß, was er da macht, kann trotzdem am Ende eine funktionierende Installation haben.

 

Xcode installieren

Zunächst muss aber erst Apples Entwicklungsumgebung Xcode installiert werden, um die nötigen Werkzeuge zum Übersetzen der libmcrypt-Sourcen zu haben. Xcode gibt es auf der Xcode-Seite bei Apple zum Download. Allerdings muss man Mitglied des Apple Develeoper-Programms werden – aber dafür bekommt man ja auch was.

Ist Xcode dann installiert, findet man im Finder unter ‚Programme‘ übrigens nichts. Für unseren Zweck ist das auch nicht nötig, wer aber Xcode mal ausprobieren möchte: Es liegt im Verzeichnis /Developer bzw. mit ein paar anderen Tools in /Developer/Applications.

 

libmcrypt

Weiter gehts mit dem Download der libmcrypt-Sourcen von sourceforge. Das Archiv kann in ein beliebiges Verzeichnis entpackt werden. Im folgenden gehe ich davon aus, dass das Verzeichnis ‚libmcrypt‘ heißt.

Jetzt geht es wieder weiter im Terminal:

cd libmcrypt
export CFLAGS="-arch x86_64"
./configure --disable-shared
make
sudo make install

Damit sollte libmcrypt auf dem Rechner installiert sein.

 

mcrypt als PHP-Extension compilieren und installieren

Die libmcrypt-Library, die wir im vorherigen Schritt installiert haben, dient nun als Basis für den letzten Schritt: Das Übersetzen und Installieren der mcrypt-Extension für PHP.

Dazu müssen zunächst die PHP-Sourcen runtergeladen werden. Ich hatte zunächst die Version 5.3.18 runtergeladen. Damit gibt es aber einen Fehler, und die entsprechenden Hinweise, die ich im Netz gefunden habe, sahen mir etwas arg seltsam aus. Ich hab deshalb einfach die Version 5.3.6 benutzt, mit der funktioniert alles super. Da die php-Sourcen ohnehin nicht weiter gebraucht werden, dürfte die Version auch nicht ganz so zentral sein. Auch dieses Archiv wird also in ein beliebiges Verzeichnis entpackt, hier: ‚php-5.3.6‘.

Dann gehts wieder weiter im Terminal mit einem dem vorherigen Schritt weitestgehend ähnlichen Vorgehen:

cd php-5.3.6/ext/mcrypt
phpize
./configure
make
sudo make install

Nun noch die gerade erzeugte Extension in der php.ini aktivieren, indem man folgende Zeile hinzufügt. Einen Abschnitt [mcrypt] gibt es in der php.ini schon:

extension = mcrypt.so

Und nach einem Restart des Apache

sudo apachectl restart

sollte ein phpinfo() irgendwo in der langen Tabelle mcrypt auflisten!

Vor dem jetzt verdienten Kaffee noch ein letzter Hinweis: Die beiden Verzeichnisse mit den libmcrypt- und den PHP-Sourcen können nach erfolreicher Installation in die Tonne.

Kommentare sind geschlossen.