Zend Optimizer unter MAMP 2.x

Warning message

Warning: This post is slightly older.

It may be that the content is out of date, links are outdated or that no one responds to new comments.

Schon seit langem setzte ich für die lokale Entwicklung MAMP Pro ein. Mit der neuen Version 2.0 hat sich unter der Haube jedoch viel getan, so dass ich schon einige Male der Verzweiflung nah war. So auch jetzt wieder, als ich Zend Optimizer zum Laufen kriegen musste.

Mit MAMP 2.x wurde die Unterstützung von Zend Optimizer komplett entfernt und alle Komponenten von MAMP laufen nun mit 64bit. Da es denn Zend Optimizer für Mac OS X jedoch nur als 32bit Variante gibt, haben wir schon mal ein Problem.

Zuerst muss jedoch Zend Optimizer installiert werden. Die benötigte Datei findet man bei Zend. Übrigens, ich hasse Zwangsregistrierungen, nur um an einen Download zu kommen!

Anschließend kopiert man die Datei ZendOptimizer.so (nach dem Entpacken zu finden unter data/5_2_x_comp/ZendOptimizer.so) in das Verzeichnis /Applications/MAMP/bin/php5.2.17/modules .

Nun muss in der php.ini noch Folgendes ergänzt werden:

zend_optimizer.optimization_level=15
zend_extension=/Applications/MAMP/bin/php/php5.2.17/modules/ZendOptimizer.so

Teilweise tritt folgende Fehlermeldung auf:
Failed loading /Applications/MAMP/bin/php/php5.2.17/modules/ZendOptimizer.so: (null)

Dann sollten die Execute Rechte der Datei wie auch die Datei Xattributes (mit xattr) überprüft werden.

Nun aber zum eigentlichen Problem. Auch wenn bisher alles problemlos verlief, wird PHP unter MAMP den Zend Optimizer nicht erkennen und unsere Anwendung (in meinem Fall Shopware) wird weiter herummeckern, dass der Zend Optimizer fehlt. Das liegt wie gesagt daran, das unter MAMP 2.x der Apache unter 64bit läuft, und entsprechend den 32bit Zend Optimizer nicht verarbeiten möchte.

Hier hilft es nur, MAMP dazu zu bringen, den mitgelieferten Apache Webserver mit 32bit zu starten. Dazu muss die 32bit Variante jedoch erst aus der Multibinary Datei extrahiert und ein Symlink angelegt werden:

mv /Applications/MAMP/Library/bin/httpd /Applications/MAMP/Library/bin/httpd.64
lipo -thin i386 /Applications/MAMP/Library/bin/httpd.64 -output /Applications/MAMP/Library/bin/httpd.32
ln -s /Applications/MAMP/Library/bin/httpd.32 /Applications/MAMP/Library/bin/httpd

Nach einem Neustart von MAMP sollte nun der Apache mit 32bit laufen und der Zend Optimizer korrekt erkannt werden.

Zurückgewechselt werden kann zur 64bit Variante wieder mit:
rm /Applications/MAMP/Library/bin/httpd && ln -s /Applications/MAMP/Library/bin/httpd.64 /Applications/MAMP/Library/bin/httpd

Mein Testsystem:
MAMP 2.0.5 unter Mac OS X 10.6.8 (Snow Leopard).

German | 26. October 2011
Stored in

Comments

Danke für die Anleitung, Christian!

Hat super geklappt - wenn auch eines meiner Scripte leider nur eine Weiße Seite beim Installationsversuch anzeigt, aber das kriege ich schon noch hin. Ein anderes Script funktioniert jedenfalls prima!

Add new comment