FOL9000

IonCube unter MAMP installieren

von

Für einige Anwendungen, z.B. Shopware, wird für bestimmte Features ein php mit IonCube-Erweiterung benötigt. Wer auf einem lokalen Rechner mit MAMP entwickelt, wird versuchen (müssen), auch dort mit IonCube zu entwickeln. Schließlich soll die Entwicklungsumgebung dem Live-System so ähnlich sein wie möglich. Es gibt aber bei der Installation von IonCube zumindest z.Zt. aber ein paar Fallstricke.

Die Installationsanleitung auf der IonCube-Seite bzw. im Loader-Wizard ist eigentlich recht ausführlich und einfach umzusetzen. Ein paar Sachen sollte man bei MAMP aber beachten.

Zunächst sollte man sich den Loader-Wizard herunterladen. Die im Archiv enthaltene php-Datei legt man ins Wurzelverzeichnis der Website und ruft sie auf.

Wirklich nötig ist das Vorgehen über den Loader eigentlich nicht und zumindest zu dem Zeitpunkt, an dem ich das schreibe, ist auch noch ein Fehler enthalten; aber es schadet auch nicht, man hat zumindest eine gute Anleitung. Wer aber eine Installation nur aktualisiert oder das ganze schon öfters gemacht hat, kann sich den Loader sparen. Dann reicht es, sich die zip-Datei mit den Extensions herunterzuladen.

Aber weiter mit dem Loader: Die darin enthaltene Anleitung ist soweit ok, aber:

Das zur Zeit (!) vom Wizard angebotene loader-Archiv ist veraltet! Unbedingt das Archiv von der ionCube-Website runterladen! Nur dort sind die Dateien für aktuelle php-Versionen enthalten!

MAMP-Template editieren

Egal, wie man nun an die korrekten Dateien gelangt ist, kann man dann verfahren, wie in der Anleitung beschrieben. (Man muss natürlich nur die Dateien ins MAMP-Verzeichnis kopieren, die der installierten php-Version entsprechen, nicht alle.) Das Verzeichnis ist abhängig und der Version; mit php 7.0.12 könnte es z.B. so aussehen:
/Applications/MAMP/bin/php/php7.0.20/lib/php/extensions/no-debug-non-zts-20151012/.

In der Anleitung wird weiter einfach nur gesagt, man solle die php.ini editieren. In MAMP muss aber das Template für die ini-Datei editiert werden! Die ini-Datei, die bei phpinfo() als geladen angezeigt wird, wird immer wieder vom Template über- bzw neugeschrieben! Deshalb in MAMP unter Scriptsprachen im MAMP-Sidebar PHP anwählen. Unter Ablage → Vorlage editieren → PHP (php.ini) → xx die Vorlage für die passende Version auswählen und im sich öffnenden Editor diese Vorlage nach Anleitung bearbeiten.

Und noch etwas gilt es zu beachten: Diese Installation von IonCube ist nur für eine php-Version! Wechselt man die php-Version oder macht man ein MAMP-Update, das auch die php-Version anpasst, muss man das ganze Procedere für das neue Extensions-Verzeichnis und die neue Vorlage wiederholen. Dies vergisst man bei einem Update gerne mal…

ini-Datei für die php cli-Version editieren

Wer wie beschrieben vorgeht, sollte aus seinen Anwendungen heraus IonCube problemlos nutzen können. Shopware zeigt ein korrekt installiertes IonCube in den System-Infos an und auch mit einem einfachen phpinfo() sollte es als geladen angezeigt werden.

Wer aber php über die Kommandozeile benutzt, wird u.U. feststellen, dass IonCube nicht verfügbar ist. Herausfinden kann man das recht einfach über

php -v

Dort wird sich IonCube mit einer Copyright-Meldung bemerkbar machen, wenn es installiert ist.

Ist IonCube für die Kommandozeile nicht installiert, kann das verschiedene Gründe haben:

  • In der Kommandozeile wird gar nicht das MAMP-php benutzt, sondern das zum Betriebssystem gehörende
  • oder IonCube ist für die Kommandozeile gar nicht installiert.

Ersteres ist ganz einfach zu ändern: In MAMP lässt sich für jede installierte php-Version angeben, ob sie für die Kommandozeile benutzt werden soll. Hier muss man natürlich eine Version wählen, für die man IonCube auch installiert hat.

Der zweite Fall ist schon seltsamer. Denn man muss erstmal wissen, dass die Kommandozeilen-Version des MAMP-php nicht die Template ini-Datei benutzt, die man bei der Installation bearbeitet hat!

(In einer ersten Installation ist es mir passiert, dass ich nur die ini-Datei für die Kommandozeile bearbeitet habe, die Template-ini dagegen nicht — da lief IonCube nur auf der Kommandozeile, nicht aber über den Web-Server…)

Welche ini-Datei vom php auf der Kommandozeile benutzt wird, lässt ich einfach herausfinden. Mit

php --ini

zeigt php die verwendete ini-Datei an. Die unter ‚Loaded Configuration File‘ angegebene Datei muss man nun genauso editieren, wie oben beim Template beschrieben. Anschließend sollte es auch über die Kommandozeile funktionieren.

Aber auch hier ist wichtig: Nach Updates und neuen Versionen muss das ganze wiederholt werden!

Kommentare sind geschlossen.