Zend Optimizer und ionCube Loader auf 1&1 Managed Server installieren

Veröffentlicht in Server am 23. Februar 2008 von Markus
27 Kommentare Auf Facebook weitersagen twittern

Die Vorzüge eines günstigen Managed Servers bezahlt man naturgemäß mit Unflexibilität in Bezug auf individuelle Konfiguration der Serverdienste. Wie sich dennoch die für viele Applikationen wichtigen Module Zend Optimizer bzw. ionCube Loader installieren lassen, zeige ich nachfolgend am Beispiel eines 1&1 Homepage Servers.

Ein Managed Server kombiniert die Leistungsfähigkeit eines eigenen Servers mit professioneller Wartung und 24/7-Überwachung durch einen externen Dienstleister. Sofern man sich nicht für einen Premiumserver mit ggf. individuellem Ansprechpartner entschieden hat, ist der Preis dafür im Normalfall Unflexibilität in Bezug auf die individuelle Konfiguration des Servers.
Dennoch sind für einige kommerzielle Applikationen Module notwendig, die so nicht in der Server-Standardkonfiguration des Providers enthalten sind. Im konkreten Fall benötigte ich zur Ausführung einer kommerziellen Applikation das Modul ionCube Loader zusammen mit dem Zend Add-On Zend Optimizer. Im Falle des Zend Optimizers werden beispielsweise mit Zend Guard geschützte PHP-Applikationen ausführbar gemacht. Zend Guard schützt Anwendungen vor Verfälschung, nicht autorisierter Modifizierung, nicht lizenzierter Nutzung und Weiterverbreitung. Zusätzlich optimiert das Modul die Ausführungsgeschwindigkeit von PHP-Applikationen.

Beide Extensions müssen normalerweise auf dem Server installiert und in der php.ini entsprechend aktiviert werden. Auf einem 1&1 Managed Server hat man jedoch keine Root-Rechte, daher fällt eine eigene Installation aus. Zudem kann man aus dem gleichen Grund auch nicht auf die globale php.ini zugreifen. Es gibt dennoch eine Methode beide Dienste zu installieren.

So funktioniert´s:

1. Zend Optimizer Paket besorgen

Zunächst organisiert man sich auf der Zend Website das aktuelle Zend Optimizer Paket: http://www.zend.com/de/products/guard/optimizer/
Hier ist eine kostenlose Registrierung erforderlich. Wichtig ist darauf zu achten die richtige Distribution zu wählen, zur Zeit ist es bei 1&1 die 32Bit Variante (ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz).

2. Extension installieren

Das Paket jetzt auf dem Desktop entpacken (z.B. mit WinRAR) und im Verzeichnis /data das Verzeichnis mit der richtigen “ZendOptimizer.so” wählen. Die Verzeichnisse sind nach PHP-Versionen sortiert. Wenn Sie nicht wissen welche PHP-Version auf dem Server installiert ist, können wir das mit einem einfachen Trick herausfinden. Dazu legt man auf dem Server ein neues Verzeichnis an und erstellt darin eine php-Datei “info.php” mit folgendem Inhalt:

phpinfo(); 

Jetzt im Browser diese Datei z.B. via “http://xxx.xxx.xx.xx/verzeichnis/info.php” aufrufen.

Es erscheint eine Liste mit der aktuellen Serverkonfiguration und ganz oben sollte die aktuelle PHP-Version stehen, bei 1&1 derzeit bei der Verwendung von PHP5 “PHP Version 5.2.6″.

Mit diesen Erkenntnissen wählen wir also die Datei “ZendOptimizer.so” aus dem Verzeichnis “5_2_x_comp” und kopieren sie auf den Server in ein weiteres, neues Verzeichnis, z.B. in /zend.

Um jetzt das Modul zu aktivieren, muss man eine eigene php.ini schreiben und zwar mit folgendem Inhalt:

zend_optimizer.optimization_level=15
zend_extension=/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ZendOptimizer.so

Das Verzeichnis muss den absoluten Serverpfad zum Extension-File enthalten. Das Verzeichnis ist Serverindividuell, kann aber z.B. in der Shell durch Eingabe von “pwd” angezeigt werden.

Diese php.ini Datei muss jetzt in das Verzeichnis kopiert werden, in dem die ZendOptimizer Funktionalität bestehen soll.

Im Prinzip ist damit der Zend Optimizer installiert, aber ich will wie gesagt noch den ionCube Loader dazu haben.

Zur Installation des ionCube Loader Paketes ist ein ähnliches Vorgehen notwendig.

3. ionCube Loader Paket besorgen

Die aktuelle Version erhalten wir auf der ionCube-Website: http://www.ioncube.com/loaders.php. Hier wieder darauf achten, die richtige Versionn zu wählen, d.h. im Moment “Linux (x86)”.

Man erhält nach Download das File “ioncube_loaders_lin_x86.tar.gz”, welches wieder z.B. mit WinRAR entpackt werden muss. Darin finden sich verschiedene Versionen.

4. Extension installieren

Auch hier können wir mit einem einfach Trick herausfinden welches die richtige ist. Dazu einfach die im Archiv enthaltene Datei “ioncube-loader-helper.php” in das oben für die info.php Datei erstellte Verzeichnis kopieren.

Jetzt das File aufrufen z.B. mit

http://xxx.xxx.xx.xx/verzeichnis/ioncube-loader-helper.php

Dort lesen wir den den Satz “If you have permission to edit the php.ini configuration file for this server, please follow the php.ini installation instructions”.

Mit Klick auf den Link, erhält man unter “Required Loader” die Version, die der Server benötigt. Diese Datei entpacken wir jetzt und kopieren sie wieder auf den Server, z.B. in das Verzeichnis /zend, in das wir schon die “ZendOptimizer.so” kopiert haben. Gleichzeitig entnehmen wir dem Helper-File eine Zeile die jetzt wieder in die eigene php.ini übernommen werden muss, um das ionCube Modul zu aktivieren. Die neue, ergänze php.ini sollte jetzt also so aussehen:

zend_extension =/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ioncube_loader_lin_5.2.so
zend_optimizer.optimization_level=15
zend_extension=/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ZendOptimizer.so

Wichtig ist hier, dass die ionCube-Extension vor(!) den anderen beiden Einträgen erscheint.
Jetzt die php.ini wieder in das Verzeichnis schieben, indem die Funktionalität bestehen soll. That´s it! ;)

5. Funktion prüfen

Wenn wir jetzt eine info.php in das Projektverzeichnis mit der php.ini legen und entsprechend aufrufen, sollte nach dem ersten Block folgende Info sichtbar sein:

Kommentare
  1. Hallo Markus,
    1.000 Dank für diese geniale Anleitung.
    Ich war alles haarklein durchgegangen – und es hat immer noch nicht funktioniert.
    Irgendwann dann hat es “klick” gemacht:
    ich Dummy hatte noch die “alte” php-Version!!!
    Also fix eine Datei namens .htaccess erstellt, die Zeilen
    ## Umstellung auf php5
    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php
    ## Ende Umstellung
    eingefügt, auf den Server geladen -und -YES!!!!
    :-)
    Nochmals Danke!!

    Antworten

  2. Hi Marcus,

    kein Thema, gerne – schön dass es geklappt hat :)

    Antworten

  3. Torsten

    Hallo zusammen, sehr gute Anleitung, wie man bei einem Managed-Server den ZendOptimizer installiert. Funktioniert dies auch mit der php-cli Version ? ..
    PHP-Cli wird ja z.b. im Falle von Cronjobs über die Shell ausgeführt und hat wenig mit der apache-config zu tun.

    Einer eine Idee ?

    Antworten

  4. Hallo Markus,

    Super Anleitung, vielen Dank.

    Antworten

  5. Hallo Markus,

    echt super Anleitung. Habe dementsprechend nun installiert.
    Allerdings kommt bei der installation von XT nun folgende Fehlermeldung:

    Site error: the file /homepages/38/d287316490/htdocs/xtFramework/classes/class.filter.php requires the ionCube PHP Loader ioncube_loader_lin_5.2.so to be installed by the site administrator.

    Vielleicht könntest Du mir da weiterhelfen?!

    LG und Danke im Voraus!!
    Patrick Pfeiffer

    Antworten

  6. Hi Patrick,

    vielen Dank! Es sieht so aus, als ob bei Dir die Extension doch noch nicht richtig installiert wurde. Was sagte denn der die ioncube-loader-helper.php? Check Mal durch Aufruf der phpinfo (siehe oben), ob beide Extensions da sind.

    Grüße,
    Markus

    Antworten

  7. Hallo
    nach stundenlangen Hangeln zwischen 1&1 support und XT.commerce dann doch noch der rettende Hinweis.
    Die php.ini muß in jedem Directory vorhanden sein, welches auf ioncube zugreift, nicht nur in der root und im XTinstall

    eventuell hilft’s dem Kollegen Patrick ja auch weiter.

    viel erfolg
    Erwin W. Lissy

    Antworten

  8. Luca Di Giorgio

    Thx fürs tutorial – sehr hilfreich

    Antworten

  9. Hallo Markus,

    merci erst mal für die klasse anleitung!
    hab ziemlich wenig ahnung von server admin daher hab ich auch das managed paket von 1&1. daher auch meine frage: kann es sein, dass man ioncube nur für einzelne ordner und nicht für alle unterordner istallert?

    bekomme bei domain/info.php die angezeigt das ioncube installiert ist und auf domain/admi/phpinfo.php steht das nicht mehr.

    kennst du das problem oder hast du eine lösung?

    merci schon mal

    gruß
    thomas

    Antworten

  10. Hi Thomas,

    was ich mir vorstellen könnte, wäre dass Du wie beschrieben in jedes Verzeichnis, das die entsprechende Funktionalität benötigt eine eigene php.ini kopieren musst. D.h. auch in /admin/.

    Grüße,
    Markus

    Antworten

  11. Hi Markus,
    ich habe deine Anleitung mit Interesse gelesen, werde aber aus der Php.ini-Datei nicht schlau.
    ich habe auch eine 1&1-Website: Homepage perfect und benötige ioncube.

    ich habe alles genau so gemacht, wie du es gesagt hast. die optimalen zend-datei und ioncube in /zend geladen und will nun die php.ini-datei schreiben.
    du hast geschrieben:

    zend_optimizer.optimization_level=15
    zend_extension=/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ZendOptimizer.so

    für zend-optimizer und für ioncube:

    zend_extension =/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ioncube_loader_lin_5.2.so
    zend_optimizer.optimization_level=15
    zend_extension=/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ZendOptimizer.so

    meine zend- und iondatei findet man unter dem pfad http://www.partnerprogramm.wiegoldstaub.de/zend/die beiden so-dateien

    muss ich jetzt /kunden/homepages/x/dxxxxxxxxx/htdocs föllig löschen und den eben auf geschriebenen pfad für /kunden/homepages/x/dxxxxxxxxx/htdocs ersetzen?

    ich bin nicht der beste in sachen computer und vllt auch ein bischen schwer von begriff. können sie mir darauf bitte eine antwort geben?
    vielen dank
    robert

    Antworten

  12. Danke für die super Anleitung! Und auch danke für die Kommentare, habe auch einen Server bei 1&1 und der Support – naja da muss man ja echt ewig warten bis man mal eine Anwort bekommt und dank der Kommentare hier habe ich ioncube zum laufen gebracht indem ich php.ini in alle ordner kopiert hab. DANKE!!!

    Und es wäre echt eine Verbesserung wenn 1&1 mal auf die Idee kommt es einfach Vorzuinstallieren, das erspart viel Zeit und Nerven.

    Antworten

  13. Tatiana

    Vielen Dank Markus, die Anleitung ist eine echte Hilfe! Ich habe Server bei 1&1 und eine FCM Template und telefoniere shon seit Tagen mit dem Support . 1und1 Support ist ein ordentlicher Reinfall.

    Antworten

  14. Christian Pirker

    Vielen Dank Markus für die Hinweise, allerdings habe ich ein aon Paket aon.at. Wie bekomme ich heraus welche Version benötigt wird, ich habe hier meine mail adresse hinterlassen bräuchte ganz dringen den Loader ioncube_loader_lin_5.2.so installiert.
    Mir fehlt nur der richtige code für die php.ini damit er funktioniert der rest ist installiert. Bin leider schon seit Tagen Verzweifelt auf der Suche nach einer Lösung ich bitte um Anwort .

    Antworten

  15. Danke für alle Kommentare – sollte es nach Studium des Posts noch Unklarheiten geben, einfach per Kommentar oder über das Formular melden!

    Antworten

  16. Thorsten

    Hi.
    Habe alles mal so gemacht, wie in der Anleitung beschrieben. Leider komplett ohne Erfolg.
    Er meldet mir immernoch, das der ionCube-Loader nicht installiert ist.
    Die phpinfo sagt zu den relevanten Sachen folgendes:

    Zend Loader enabled

    Der sollte also schonmal funktionieren (hätte mich aber auch gewundert, da ich diesen für JomSocial eh brauche).

    Noch jemand eine Idee?

    Antworten

  17. Hi Thorsten,

    hast Du ein paar mehr Infos für mich? Wie sieht denn Deine php.ini aus?

    Grüße,
    Markus

    Antworten

  18. runterladen

    Tja, Sachverhalte können so einfach sein! Danke :-)

    Antworten

  19. Danke, danke, danke für diese leicht verständliche Anleitung. :-)

    Antworten

  20. Gern geschehen! :)

    Antworten

  21. Hallo Markus

    ich habe alles genau so gemacht, wie Sie es aufgeschrieben haben.

    zend_optimizer.optimization_level=15
    zend_extension=/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ZendOptimizer.so

    meine zend iondatei findet man unter dem pfad
    http://www.partnerprogramm.de/zend/

    muss ich jetzt /kunden/homepages/x/dxxxxxxxxx/htdocs föllig löschen und den eben auf geschriebenen pfad für /kunden/homepages/x/dxxxxxxxxx/htdocs ersetzen?

    BItte um eine Rückmeldung.

    Peter :-D

    Antworten

  22. Antwort auf meine frage haha :-D hab ich gerade in Internet gefunen und es funktioniert !!!

    1. Schritt: Laden Sie den Zend Optimizer (Linux x86 32 bit) unter >> http://www.zend.com/de/free_download/optimizer herunter (Hier müssen Sie sich zuerst registrieren/anmelden)
    2. Schritt: Entpacken Sie die Datei auf Ihrem lokalen Rechner
    3. Schritt: Wechseln Sie in das Hauptverzeichnis des Zend Optimizer und dort auf “data”. Sie finden dort einige Unterverzeichnisse, die nach PHP-Versionen benannt sind, z.B. 4_3_x_comp. Wichtig ist die Datei ZendOptimizer.so im entsprechenden Versionsordner. Laden Sie diese Datei mit Hilfe einer FTP-Software in ein Unterverzeichnis Ihrer Wahl auf Ihrem Webserver.
    4. Schritt: Erstellen Sie nun eine Datei namens php.ini mit folgendem Inhalt:

    zend_optimizer.optimization_level=15
    zend_extension=/homepages/12/d1234567/htdocs/zend/ZendOptimizer.so

    Bitte passen Sie hierbei den Pfad (/homepages/12/d1234567/htdocs/zend/ZendOptimizer.so) entsprechend an, Sie können diesen nicht genauso übernehmen. Den genauen Pfad zu Ihrem Hauptverzeichnis können Sie in Ihrem >> 1&1 Control-Center unter Domains
    I auslesen, oder einfach indem Sie in der Shell

    pwd

    eingeben. Ergänzen Sie den Pfad evtl. um das entsprechende Unterverzeichnis.

    Bitte beachten Sie:

    Die php.ini gilt nur in dem Verzeichnis, in welchem sie abgelegt wurde. Benötigen Sie den ZendOptimizer in mehreren Unterverzeichnissen, kopieren Sie die php.ini entsprechend auch in diese Verzeichnisse.

    WICHTIG !
    Sie müssen sich bei 1und1.de unter 1&1 Control-Center unter Domains
    einloggen und dann auf Domains klicken nur so bekommen Sie ihren genauen Pfad….

    Antworten

  23. Lothar

    Ich bin am verzweifeln.

    ich möcht xt-commerce im 1&1 Dual Basic Paket installieren.klappt einfach nicht!

    Ich lade xt-commerce in verzeichnis, dann parse ich die htacess-datei (im root verzeichnis), dann setze ich die rechte aller hochgeladenen dateien auf 777 (erst einmal – um sicherzustellen, dass keine gesperrte datei probleme bereitet), dann lade ich ioncube in der version Linux (x86) hoch und erstelle im nachgang php.ini datei mit notepad++ programm. in die datei schreibe ich pfad in der form rein:

    zend_extension = /homepages/xx/xxxxxx/htdocs/shop1/ioncube/ioncube_loader_lin_5.2.so

    ini lade ich im anschluss in hauptverzeichnis und in xtInstaller-Verzeichnis.

    Dennoch bekomme ich folgende Fehlermeldung

    Site error: the file /homepages/xx/xxxxxx/htdocs/shop1/index.php requires the ionCube PHP Loader ioncube_loader_lin_5.2.so to be installed by the site administrator.

    Was mache ich da falsch? Bin für Eure Hilfe echt dankbar!

    Antworten

  24. Markus

    Hallo Lothar,

    erstmal müsstest Du bitte bei 1&1 klären, ob sich beim Dual basic Paket überhaupt via eigener php.ini Zusatzmodule installieren lassen?

    Denn diese Anleitung bezieht sich auf einen 1&1 Managed Server.

    Grüße,
    Markus

    Antworten

  25. Sehr geehrte Damen und Herren,

    wir haben den Shop von XT commerce bestellt, und sind bei der Installation an unsere Grenzen gestoßen, auch hier fehlt die Datei php.ini, und wir können diese nirgends finden.

    Haben Sie eine Idee ?

    Vielen vielen Dank vorab

    Antworten

  26. Hallo!

    Wenn Sie keine .ini Datei haben, können Sie einfach eine erstellen. Schreiben Sie darin

    “zend_optimizer.optimization_level=15
    zend_extension=/kunden/homepages/x/dxxxxxxxxx/htdocs/zend/ZendOptimizer.so”

    genau in dieser Reihenfolge und unter den oben im Post genannten Voraussetzungen , also

    - Das Verzeichnis muss den absoluten Serverpfad zum Extension-File enthalten

    und

    - Diese php.ini Datei muss jetzt in das Verzeichnis kopiert werden, in dem die ZendOptimizer Funktionalität bestehen soll.

    Funktioniert es?

    Antworten

  27. Jenny North

    WOW, das habe ich mir sofort gebookmarkt :-) .

    Antworten

Kommentieren