Wenn du PHP-Code in deiner Anwendung verschlüsseln musst, dann ist ionCube eine sehr beliebte Wahl, die für eine gute Integration sowohl in kleine als auch in Unternehmensanwendungen entwickelt wurde.

Typischerweise wird der PHP-Quellcode zuerst durch den ionCube-Encoder geleitet, bevor eine Anwendung verteilt wird. Dies schützt den Code davor, dass er für Menschen lesbar ist oder bearbeitet werden kann.

Standardmäßig kann verschlüsselter PHP-Quellcode jedoch nicht direkt auf dem Server ausgeführt werden. Er muss entschlüsselt werden, bevor die PHP-Engine ihn verarbeiten kann.

Hier kommt der ionCube-Lader ins Spiel.

Einführung

Erstmals 2002 veröffentlicht, handelt es sich um eine PHP-Erweiterung, die (zuvor verschlüsselten) Code on-the-fly entschlüsselt und ihn zusammen mit dem Rest der PHP-Anwendung zur Ausführung vorbereitet.

Es dreht sich alles um Sicherheit. Wenn eine PHP-Anwendung proprietären Code/Algorithmen enthält oder Software-Lizenz-Funktionen benötigt werden, dann ist die Verwendung von ionCube eine ideale Lösung, um deinen Quellcode zu schützen.

Um PHP-Dateien zu kodieren, musst du zuerst den ionCube-Encoder kaufen. Es gibt auch eine Online-Version des Encoders, die Unterstützung für die kostenlose Verschlüsselung von PHP-Code zu Testzwecken bietet (mehr dazu weiter unten).

Was den ionCube loader betrifft, so ist dieser für jeden kostenlos herunterzuladen und auf seinem Server zu installieren. Es sind verschiedene Versionen des ionCube loaders erhältlich, jede für ein bestimmtes System (Linux, Windows, macOS etc.) und 32-Bit oder 64-Bit Architekturen.

Nach dem Herunterladen musst du die Version des ionCube loaders installieren, die mit der auf deinem Server laufenden PHP-Version übereinstimmt, da jeder verfügbare Download mehrere Versionen des ionCube loaders für die verschiedenen PHP-Versionen enthält

Wenn du dir nicht sicher bist, welche Version du herunterladen und installieren musst, dann mach dir keine Sorgen, wir werden dies in Kürze ausführlich behandeln.

Nur als Randbemerkung, wenn du HHVM (HipHop Virtual Machine) verwendest, um PHP zu verarbeiten, dann musst du dir bewusst sein, dass ionCube loader HHVM nicht unterstützt.

Dies ist jedoch meistens ein Streitpunkt, da HHVM die Unterstützung für PHP ab Version v3.30 beendet hat. Dies ist also nur relevant, wenn du eine ältere Version von HHVM verwendest. Wenn du immer noch HHVM verwendest und PHP-Dateien mit ionCube verschlüsseln musst, dann musst du auf eine Standard-PHP-Engine umsteigen, die ionCube unterstützt.

Vorbereiten der Installation

Um die manuelle Installation des ionCube loaders abzuschließen, ist es eine gute Idee, sich zunächst mit den üblichen Terminalbefehlen vertraut zu machen. Wenn du bereits mit dem Terminal vertraut bist, dann zögere nicht, zum nächsten Abschnitt zu springen.

In diesem Handbuch verweisen wir auf die folgenden Terminal-Befehle:

  • cat – Inhalt einer Datei auf das Terminal ausgeben.
  • cd – Das aktuelle Arbeitsverzeichnis wechseln.
  • cp – Eine oder mehrere Dateien kopieren.
  • echo – Eine Nachricht an das Terminal ausgeben.
  • grep – Leistungsstarke textbasierte Suche.
  • head – Gibt die ersten paar Zeilen einer Datei aus.
  • ls – Dateien und Verzeichnisse auflisten.
  • mkdir – Ein neues Verzeichnis erstellen.
  • nano – Kompakter Texteditor innerhalb des Terminalfensters.
  • ssh – Erstelle eine neue SSH-Fernverbindung.
  • tar – Dateien aus einem Archiv extrahieren.
  • wget – Dateien über HTTP herunterladen.

Wenn du verstehst, was diese Terminal-Befehle tun und wie sie zu benutzen sind, wird der Installationsprozess des ionCube loaders viel einfacher. Klicke auf die Links, um genauere Informationen zu den einzelnen Befehlen zu erhalten.

Aktiviere den ionCube Loader in MyKinsta

Wenn du ein Kinsta-Kunde bist, kannst du den ionCube-Lader in MyKinsta aktivieren. Um ionCube loader zu aktivieren, gehe zu Webseiten > Werkzeuge > ionCube Loader und drücke den „Aktivieren“-Knopf. Zurzeit kann ionCube loader nur auf Webseiten aktiviert werden, die PHP 7.4 oder 8.1 (ionCube wird unter PHP 8.0 nicht unterstützt). ionCube ist für Kinsta-Kunden kostenlos und kann auf jedem Plan installiert werden.

Aktiviere den ionCube-Lader in MyKinsta.
Aktiviere den ionCube-Lader in MyKinsta.

Kinsta unterstützt derzeit die Ausführung der ionCube-Loader-Erweiterung auf den folgenden PHP-Versionen:

  • 7.2
  • 7.3

Wenn du kein Kinsta-Client bist, führen wir dich im Folgenden durch die manuelle Installation des ionCube-Laders auf einem VPS. Stelle sicher, dass du vollen SSH-Zugriff hast und bequem Terminalbefehle ausführen kannst.

Manuelle Installation von ionCube Loader

Es gibt eine Reihe von spezifischen Schritten, die erforderlich sind, um die Installation des ionCube loaders manuell auf deinem Server abzuschließen. Dieser Prozess kann leicht variieren, abhängig von deiner genauen Serverkonfiguration, aber solange du einen Linux-basierten Server betreibst, sollten die Unterschiede minimal sein.

Während des Installationsprozesses werden wir jeden der folgenden Schritte im Detail behandeln:

  1. Verbinde dich über SSH mit deiner Website per Fernzugriff.
  2. Lade die PHP-Erweiterung ionCube Loader herunter und extrahiere sie..
  3. Kopieren der ionCube Loader .SO Datei..
  4. Konfiguration und Neustart des Servers..
  5. Überprüfen der ionCube Loader Installation
  6. Testen der ionCube-Installation
  7. Fehlerprotokolle auf Installationsprobleme prüfen

Verbinde dich über SSH mit deiner Website per Fernzugriff

Bevor wir den ionCube loader herunterladen und mit der Installation beginnen können, müssen wir eine sichere Remote-Verbindung zum Server über SSH (Secure Shell) herstellen. Dies hat sich zur Standardmethode entwickelt, um mit dem Server über die Kommandozeile zu interagieren und wir werden während des Installationsprozesses der PHP-Erweiterung des ionCube loader ausführlich darauf eingehen.

Um eine neue SSH-Verbindung zu öffnen, musst du die folgenden Informationen zur Hand haben, die bei jedem Einloggen eingegeben werden müssen:

  • Hostname
  • Portnummer
  • Benutzername
  • Kennwort

Es ist eine gute Idee, diese Informationen nachzuschlagen und sie sich vorher zu notieren. Normalerweise können diese Informationen in deinem Server cPanel oder Dashboard wie MyKinsta gefunden werden. Dein Host wird dir helfen können, wenn du die gesuchten Informationen nicht finden kannst.

Du kannst dich auch über SSH-Tasten mit deinem Remote-Server verbinden. Diese Methode wird im Allgemeinen als eine sicherere Methode zur Verbindung über SSH angesehen. Dein Server sollte beide Methoden unterstützen.

Wenn du SSH-Schlüssel verwenden möchtest, anstatt bei jeder Anmeldung die Benutzername/Passwort-Kombination einzugeben, dann schau dir diese umfassende Anleitung für weitere Informationen an.

Wenn du mit einem MacOS- oder Linux-Betriebssystem arbeitest, dann ist das eingebaute Terminal für den SSH-Zugang geeignet. Wenn du jedoch unter Windows arbeitest, musst du einen SSH-Client wie PuTTY verwenden, da diese Funktion nicht standardmäßig verfügbar ist.

PuTTY - Windows SSH-Client
PuTTY – Windows SSH-Client

Im weiteren Verlauf dieser Anleitung werden wir das macOS-Terminal verwenden. Um eine Verbindung zu deinem Server über SSH herzustellen, brauchst du die folgenden Details:

  • Benutzername
  • Hostname
  • Portnummer
  • Kennwort (SFTP)

Der SSH-Terminalbefehl hat die Form:

ssh username@hostname -p portnumber

Die Portnummer ist normalerweise 22, aber sie kann für deinen spezifischen Server unterschiedlich sein. Es können z.B. unterschiedliche Portnummern für gemeinsam genutzte und dedizierte Server verwendet werden, also frage deinen Hosting-Provider, wenn du nicht sicher bist, bevor du versuchst, eine Verbindung herzustellen.

Sobald der ssh-Befehl eingegeben wurde, wirst du nach einem Passwort gefragt, nach dem die Remote-SSH-Verbindung abgeschlossen ist und du direkten Zugang zum Server hast.

SSH-Fernverbindung zum Server
SSH-Fernverbindung zum Server

Download und Entpacken der ionCube Loader PHP Erweiterung

Es gibt verschiedene Versionen des ionCube-Laders, die zum Download zur Verfügung stehen. Diese sind nach Plattform und Erscheinungsdatum aufgelistet, um die Auswahl der richtigen

ionCube loader Download-Archive
ionCube loader Download-Archive

Du kannst die ionCube-Lader-Updates abonnieren, um sicherzustellen, dass deine Lader-Erweiterung immer auf dem neuesten Stand ist.

Um herauszufinden, welche Loader-Version die richtige für deinen Server ist, können wir den PHP-Befehl verwenden, der detaillierte PHP-Konfigurationsdaten anzeigt.

[phpinfo()](https://www.php.net/manual/en/function.phpinfo.php)

Um diese PHP-Funktion zur Ausgabe der benötigten Daten zu nutzen, führe die folgenden Schritte durch:

  • Verbinde dich über SSH mit deinem Server.
  • Erstelle eine PHP-Datei.
  • Füge die Funktion phpinfo() hinzu.
  • Speichere die Datei innerhalb des Root-Webseiten-Ordners
  • Anzeige in einem Browser.
  • Suche im Dokument nach ionCube-Referenzen.
  • Lösche die Datei, wenn du fertig bist.

Dies ist ein ziemlicher Aufwand, um nur die PHP-Konfigurationsdaten des Servers anzuzeigen. Glücklicherweise gibt es einen einfacheren Weg, dies über das Terminal zu tun.

Das Ausführen des php -i Befehls wird die gleiche Antwort der PHP CLI Engine liefern wie phpinfo(). Wir wollen jedoch nur die ersten paar Zeilen ausgegeben haben, da diese die relevanten Informationen über die Serverumgebung enthält, in der PHP läuft.

Dies kann man mit tun:

php -i | head -n 5

die die folgenden Informationen ausgibt:

Version des ionCube-Laders ermitteln
Version des ionCube-Laders ermitteln

Wie du siehst, ist unser spezieller Server Linux-basiert und der x86_64 bezieht sich auf ein 64-Bit-System. Der ionCube-Lader, den wir herunterladen sollten, ist also das Linux 64 Bit tar.gz Archiv. Stelle sicher, dass du das für dein System relevante ionCube loader Archiv herunterlädst.

Das ionCube loader-Archiv sollte in ein temporäres Verzeichnis heruntergeladen werden, also lasst uns jetzt eines erstellen, bevor wir etwas anderes machen:

cd /tmp
mkdir ioncube
cd ioncube/

Um das ionCube-Archiv tatsächlich herunterzuladen, benutze den wget Befehl.

wget 
https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Dies lädt das ionCube loader-Paket in den temporären Ordner herunter und gibt den Download-Fortschritt aus, bis er abgeschlossen ist.

ionCube-Archiv herunterladen
ionCube-Archiv herunterladen

Sobald das Archiv erfolgreich heruntergeladen wurde, befördere es in den gleichen /tmp-Ordner mit:

tar xvfz ioncube_loaders_lin_x86-64.tar.gz
Extrahiere das ionCube Archiv
Extrahiere das ionCube Archiv

Dadurch werden alle archivierten Dateien in einen neuen ioncube-Ordner extrahiert. Liste diese mit ls ioncube auf:

ionCube Loader-Dateien
ionCube Loader-Dateien

Wie du sehen kannst, gibt es mehrere einzelne ionCube-Lader-Dateien mit der Endung .so. Jeder Dateiname enthält eine andere Nummer, die sich auf die auf deinem Server laufende PHP-Version bezieht, daher ist es wichtig, dass du die richtige installierst.

Früher haben wir den Befehl php -i | head -n 5 ausgeführt, um die Informationen zum Server-Betriebssystem zu erhalten. Die ersten paar Zeilen der Ausgabe geben uns auch die PHP-Version an, die in unserem Fall 7.2.22 war.

Um schnell zu bestimmen, welche ionCube-Lader-Datei wir verwenden sollten, liste nur die Dateien auf, die _7 enthalten, um es einfacher zu machen, nur die Dateien zu sehen, die dich interessieren.

Wir können dies tun, indem wir die Ausgabe von ls in grep pipen, um die Liste der Dateien zu filtern:

ls ioncube | grep _7

Das ergibt:

Gefilterte ionCube Loader Dateien
Gefilterte ionCube Loader Dateien

Die beste Übereinstimmung mit unserer Version von PHP ist ioncube_loader_lin_7.2.so. Es gibt eine weitere passende Datei namens ioncube_loader_lin_7.2_ts.so, aber wir können diese ignorieren, da es die thread-sichere Version ist, die für unsere spezielle Serverkonfiguration nicht relevant ist.

Übrigens, falls du dich fragst, .so-Dateien sind eine Art Bibliotheksdatei, die für ’shared object‘ steht. Diese ähneln in gewisser Weise den DLL (Dynamic Link Library)-Dateien, mit denen du als Windows-Benutzer vielleicht vertraut bist.

Kopieren der ionCube Loader .SO-Datei

Um die Installation des ionCube loaders abzuschließen, müssen wir nur noch die Datei ioncube_loader_lin_7.2.so in den PHP-Erweiterungsordner kopieren.

Um den Ort des Extensionsordners herauszufinden, gib den folgenden Terminal-Befehl ein:

php -i | grep extension_dir

Das gibt einen String zurück, der die benötigten Informationen enthält.

extension_dir => /opt/cpanel/ea-php72/root/usr/lib64/php/modules => /opt/cpanel/ea-php72/root/usr/lib64/php/modules

Vergiss nicht, dass dies wahrscheinlich für deinen eigenen Server eindeutig ist. Jetzt kennen wir den Zielordner, in den wir die ionCube-Lader-Datei kopieren können.

sudo cp /tmp/ioncube/ioncube/ioncube_loader_lin_7.2.so /opt/cpanel/ea-php72/root/usr/lib64/php/modules
Kopiere den ionCube loader in das Installationsverzeichnis
Kopiere den ionCube loader in das Installationsverzeichnis

Im Moment ist der ionCube-Lader an der richtigen Stelle, aber wir müssen PHP wissen lassen, dass die Erweiterung verfügbar ist und wo sie installiert ist.

Wir können dies tun, indem wir die Hauptkonfigurationsdatei php.ini editieren und einen neuen zend_extension Eintrag hinzufügen, der den Pfad zu ioncube_loader_lin_7.2.so angibt.

Allerdings ist die php.ini ziemlich umständlich über das Terminal zu editieren, aber wir können dies umgehen, indem wir die Tatsache ausnutzen, dass PHP die Verwendung eigener Konfigurationsdateien unterstützt.

Der einzige Vorbehalt ist, dass sich diese in einem bestimmten Verzeichnis befinden müssen, das wir durch Eingabe bestimmen können:

php -i | grep 'additional .ini files'
Finde den Ordner für die benutzerdefinierte PHP-Konfiguration
Finde den Ordner für die benutzerdefinierte PHP-Konfiguration

Wir haben jetzt alle Informationen, um unsere benutzerdefinierte Konfigurationsdatei zu erstellen und sie an der richtigen Stelle hinzuzufügen.

bash -c 'echo "zend_extension=/opt/cpanel/ea-php72/root/usr/lib64/php/modules/ioncube_loader_lin_7.2.so" > /opt/cpanel/ea-php72/root/etc/php.d/00-ioncube.ini'

Beachte, dass unserer benutzerdefinierten .ini-Datei das Präfix 00 vorangestellt wurde, was eine Möglichkeit darstellt, sie vor anderen PHP-Konfigurationsdateien zu laden, um sicherzustellen, dass sie ohne Konflikte mit anderen benutzerdefinierten Konfigurationsdateien läuft.

Konfiguration und Server-Neustart

Die PHP-Erweiterung des ionCube-Laders sollte nun korrekt installiert sein. Bevor wir sie jedoch verwenden können, müssen wir ein wenig Hausarbeit erledigen.

Nach der Installation ist es wichtig, folgendes zu tun:

  • Lade den Server neu
  • Starte die PHP-Engine neu
  • Löschen des Site-Caches

Der Server kann über die Kommandozeile neu geladen werden, aber der genaue Befehl variiert für verschiedene Server-Setups. Da wir Nginx auf unserem Server laufen lassen, haben wir ihn benutzt:

sudo /etc/init.d/nginx reload

PHP kann direkt vom cPanel oder Dashboard aus neu gestartet werden. Es wird normalerweise einige Sekunden dauern, um PHP neu zu starten und eine Popup-Benachrichtigung wird angezeigt, wenn es beendet ist.

Das letzte, was du tun solltest, ist den Site-Cache zu leeren, um sicherzustellen, dass du die letzten Änderungen an der Server-Konfiguration siehst.

Wenn diese letzten Schritte abgeschlossen sind, sollte der ionCube loader nun auf deinem Server installiert und korrekt konfiguriert sein und bereit sein, PHP-verschlüsselte Dateien zu entschlüsseln.

Überprüfen der Installation des ionCube Loaders

Um zu überprüfen, ob der ionCube loader korrekt installiert und konfiguriert ist, gibt es ein paar Dinge, die du tun kannst.

Erstens, benutze php -i

Wenn der ionCube loader installiert ist, werden die Details in der Ausgabe angezeigt.

Diese gibt jedoch einen riesigen Datenblock an das Terminal aus, den du dann manuell durchblättern musst, um nach ionCube-Referenzen zu suchen. Tatsächlich ist die Ausgabe von php -i typischerweise über 1000 Zeilen Text.

Du kannst den Terminalbefehl php -i | wc -l verwenden, um die genaue Anzahl der ausgegebenen Zeilen zu sehen.

Es ist wirklich nicht praktikabel, die Terminalausgabe manuell zu durchsuchen, also können wir stattdessen die Ausgabe von php -i direkt in den grep-Befehl leiten und nur die Informationen zurückgeben, die uns interessieren.

Um dies zu tun, gib Folgendes in ein Terminalfenster ein (das immer noch per SSH mit deinem Webserver verbunden ist):

php -i | grep ioncube
PHP-Konfigurationsinformationen anzeigen
PHP-Konfigurationsinformationen anzeigen

Wenn du Hinweise auf den ionCube loader siehst, dann war die Installation erfolgreich.

Du kannst Informationen über den ionCube loader auch über den Befehl php -v terminal abrufen. Dies zeigt die spezifische Version des ionCube loaders an, falls installiert.

Informationen zur PHP-Version anzeigen
Informationen zur PHP-Version anzeigen

Wenn du keine Ausgabe in Bezug auf ionCube über php -i oder php -v siehst, dann könnte etwas mit der Installation falsch gelaufen sein. In diesem Fall kannst du versuchen, einige (oder alle) der Installationsschritte nach Bedarf zu wiederholen, um zu sehen, ob das Problem dadurch behoben wird.

Wenn das Problem weiterhin besteht, kontaktiere deinen Gastgeber, der dir die notwendigen Maßnahmen zur Verfügung stellen kann.

Ein anderer empfohlener Weg wäre es, eine phpinfo-Seite zu erstellen, diese zu laden und nach „ioncube“ zu suchen. Auf diese Weise weißt du, ob und mit welcher Version der ionCube erfolgreich installiert ist.

Testen der ionCube-Installation

Neben der einfachen Überprüfung, ob der ionCube loader installiert zu sein scheint, ist es auch lohnenswert, einen Live-Test durchzuführen, um sicherzustellen, dass die Erweiterung wie erwartet funktioniert, bevor sie auf Produktionsdateien angewendet wird.

Lasse uns das jetzt tun, indem wir eine PHP-Datei kodieren und testen, ob sie beim Hochladen auf den Server korrekt ausgeführt wird. Eine der einfachsten Möglichkeiten, PHP-Code zu kodieren, ist die Verwendung des Online-Encoders.

Online-IonCube-Kodierer
Online-IonCube-Kodierer

Bevor du die zu verschlüsselnden Dateien hochladen kannst, musst du dich für ein kostenloses ionCube-Konto registrieren. Klicke auf den Menüpunkt Login und folge den Anweisungen auf dem Bildschirm, um ein Konto zu erstellen.

Sobald du eingeloggt bist, hast du Zugriff auf die Encoder-Upload-Seite.

Hochladen der zu kodierenden PHP-Datei
Hochladen der zu kodierenden PHP-Datei

Normalerweise gibt es eine Gebühr für die Kodierung von PHP-Dateien für Produktionscode, aber für Testzwecke ist es kostenlos.

Jegliche verschlüsselten Testdateien werden nur aktiv über die PHP-Erweiterung ionCube decoder bis zu 8 Stunden dekodiert, danach verfallen sie und werden nicht mehr dekodiert. Aber das ist mehr als genug Zeit, um zu testen, ob alles so funktioniert, wie es sollte.

Erstelle eine Test-PHP-Datei und lade sie auf den Online-Encoder hoch. Stelle sicher, dass das Feld Kodierung testen aktiviert ist.

Die hochgeladene Datei wird dann automatisch in eine Warteschlange gestellt, um verschlüsselt zu werden. Wenn dieser Vorgang erfolgreich ist, siehst du nach wenigen Sekunden eine Seite, die die Ergebnisse zusammen mit einem Download-Link für den Zugriff auf die kodierte Datei anzeigt.

Verschlüsselte hochgeladene ionCube-Dateien
Verschlüsselte hochgeladene ionCube-Dateien

Wenn du die Datei herunterlädst, wirst du feststellen, dass sie mit dem aktuellen Zeitstempel angehängt wurde, um sie von der Originaldatei zu unterscheiden.

Zum Beispiel wurde unser Original-Dateiname ioncuber-loader-test.php verschlüsselt und dann als ioncuber-loader-test-encoded-190924-100632.php zum Download zur Verfügung gestellt.

Du kannst jeden beliebigen gültigen PHP-Code in die Testdatei einbinden. Für unsere Test-PHP-Datei haben wir eine einfache Funktion hinzugefügt, die eine Zahl zurückgibt, die zusammen mit einer Nachricht angezeigt wird.


<?php

function mySecretFunction() {
  return '42';
}

echo "<h1>ionCube Loader Test Page</h1>";
echo "<p>Output of encoded function: " . mySecretFunction() . 
"</p>";

By comparison, after this was run through the encoder the downloaded file contained the following:


<?php //0059b
// 10.2 72
// 
// IONCUBE ONLINE ENCODER EVALUATION
// THIS FILE IS LICENSED TO BE USED FOR ENCODER TESTING
// PURPOSES ONLY AND SHOULD NOT BE DISTRIBUTED
// 
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199);

?>
HR+cPrb0lpjMgGF/p2/rAXWaVsF5lgbOo0LYkBQu2sZ7cHDIXwoQ+LPTtnDTw0hOl5Yfp7CvmV5c
bV90201GkQl3Lr5trbc0XXBJxV+hFqwsyPhXemDwQ37Lf0HHckqLWF5yXiIoErSIQzS8RbI1n49R
e2kRxmrwA+P2WbIZabhhXUPGZcn91NmJyW4qKz3xynZh+nvarORpi8tXqwPA3QUY7QZtwABJQs3U
lLpo3+X9sowLMgzttHBNNcGOZ73HVSgZ9eUtTRCeaswT4geKbT2qa0LgL8vhtl7RuymBklX1Rm0Q
1Aete/XaFhX6YG+B66t6nXBisZ5+P1O3YomFuW+rhbMbT1w3lk+MY+Ri5SCnRuvMig8ZWkchG3wX
XMpoGoP2uWectVSOROY+vmaGD+WTFjEFyw1C93T5qU4If5Ql/AdXA7s+ISvH8D5rqKSheLfnBQ2d
yx5yu5FEMrJwLA9g2g3xf2OSV5X1+1DmkRVEvY0tcukjjYVCcvbDKSBQpigXvYiTHAouI5ANmYbR
pMURAoAO9gUSm3Bul7HZdaQRwH2Fyp3na3hWGiSTdp5EXEDMTKRWtiB5nPPQ3MmVO6F2Er62h3Ov
N0oR6uCDj/y11u3Re6BQ2laN2k9m9ylnsMYketpe+OOMaoA6+n1yVpYWkBra+vr+Veh9+oQkXQBP
ZG4bUtd+4UIWW057ZMkKS4+2S3dSDHjcU/Op9ZSp2VFpSOlaqssNgA9WMGP0b8xhbTOPx6FqgY09
/WnmQyto9goSeIfAcc1braP74ILD9DLwVRG1aXHIC6WGhPYzafs+gut8DHebHUzSPj3JYu9t6/w2
1Nnuc5Dso5SnAa8v2AabXUvZBpQrYTf8tY1L0zL8sqTIvTlv/tRCpsu4hrwFg7hqx+6OsXaWiLwY
xtfwBfCbGS1a/c2+OhUujEllco6gB1KoekhLv9xVj70cRWRgnf+nSCcCc2bFjk4+VtJh+07M9CRO
vqaTu78gagPGMVFYebH5AvOLOKn8Ao1A1lX+GdiD0mLr8BAQ2jrZx1i8wZ0ILNuKRFWvFnYK4Bjg
SYImW2oc6Mg/u50B/Y+mjAeIbpUfm+Ksetd5n2sFetQt831K3u891bKBPw8AzqtGzhLjihFhORCG
BIwx+aA8AvUMeR4Uuk/FdyxATCqly93/crGkCwUQWrvPY5hA9KvtmOFvYPUVpuFZKS5BPzUySat3
ChtDQpr7H7N9phQvoSZ7pTBOGoyfVDTn1abQVMYQXbrW+yee+wBnGiUpGpR3MgkUPHKX/N36+P8o
Ld5obAtVtNjgiQjcYwI6KkrNmH22sqHlILAnR7yUn0==

Dies ist aus dem ursprünglichen Quellcode völlig unerkennbar, also hat der Encoder seine Arbeit getan!

Die wichtige Frage ist nun: Wird die installierte ionCube-Decoder-Erweiterung in der Lage sein, die Datei zu analysieren und zu decodieren, so dass sie als normaler PHP-Code ausgeführt werden kann?

Um das herauszufinden, haben wir beide PHP-Dateien auf den Server hochgeladen und im Browser betrachtet. Als erstes ist die Originaldatei mit dem rohen PHP-Code zu sehen

Test der Raw PHP-Datei
Test der Raw PHP-Datei

Die Seite wird wie erwartet angezeigt. Nun zur verschlüsselten PHP-Datei.

Test der verschlüsselten PHP-Datei
Test der verschlüsselten PHP-Datei

Dies zeigt genau dasselbe an, so dass die ionCube-Decoder-Erweiterung als installiert und korrekt funktionierend verifiziert wird.

Fehlerprotokolle auf Installationsprobleme prüfen

Eine letzte Sache, die du tun kannst, um zu überprüfen, ob die Installation erfolgreich war, ist die Einsicht in die Server-Fehlerprotokolle und die Suche nach aktuellen Einträgen, die sich auf die Installation von ionCube beziehen.

Wenn du etwas Ähnliches wie das Folgende im Fehlerprotokoll siehst, dann musst du deinen Host kontaktieren, damit er es weiter untersuchen kann:

PHP Fatal error: The file 
/www/sitename_xxx/public/wp-content/themes/theme-name/functions.php was encoded by the ionCube Encoder for PHP 5.6 and cannot run under PHP 7.1

Die Schritte, die für den Zugriff auf die Fehlerprotokolle erforderlich sind, sind von Host zu Host unterschiedlich, so dass es am besten ist, zuerst zu überprüfen, wenn du nicht sicher bist, wo sie sich befinden.

Kinsta-Kunden können die Fehlerprotokolle in ihrem MyKinsta-Dashboard einsehen.

Zusammenfassung

Inzwischen hast du hoffentlich die PHP-Erweiterung ionCube Loader installiert und funktioniert auf deinem Server. Nehmen wir uns einen Moment Zeit, um zu rekapitulieren, was wir getan haben.

Wir haben gelernt, dass der ionCube Loader eine PHP-Erweiterung ist, deren Zweck es ist, zuvor verschlüsselte PHP-Dateien on-the-fly zu entschlüsseln, sobald sie vom Server angefordert werden.

Dazu muss der Loader über eine Reihe von Terminalbefehlen korrekt installiert werden, wenn er über eine SSH-Verbindung mit dem Server verbunden ist.

Sobald du eine sichere Verbindung zu deinem Server hergestellt hast, kannst du mit der Installation der ionCube-Loader-Erweiterung beginnen, die in eine Reihe von Schritten unterteilt werden kann:

  1. Lade das richtige ionCube loader-Archiv in einen temporären Ordner auf deinem Server herunter.
  2. Extrahiere das heruntergeladene Archiv. Wähle aus den zahlreichen extrahierten Dateien die passende .so ionCube loader-Datei aus, die der installierten PHP-Version entspricht.
  3. Kopiere die ionCube loader .so Datei in den PHP Extensions Ordner. Dies wird ein fester Speicherort sein, der nur für deine spezielle PHP-Installation gilt.
  4. Aktiviere den ionCube-Lader in PHP, indem du die Hauptdatei ini bearbeitest oder eine benutzerdefinierte .ini-Datei erstellst. Füge eine neue zend_extension hinzu, die auf den Speicherort der installierten ionCube loader Datei zeigt.
  5. Um tatsächlich mit der Verarbeitung verschlüsselter PHP Dateien zu beginnen, muss der Server neu geladen werden und die PHP Engine neu gestartet werden. Der genaue Prozess dafür ist von Server zu Server unterschiedlich. Manchmal ist es auch notwendig, den Site-Cache zu leeren.
  6. Überprüfe die erfolgreiche Installation von ionCube über das Terminal mit den Befehlen php -i und php -v.
  7. Der letzte Schritt ist ein Live-Test, um sicherzustellen, dass der ionCube Loader wie erwartet funktioniert. Du kannst den Online-Encoder zum kostenlosen Verschlüsseln von PHP-Dateien verwenden, solange es nur zu Testzwecken geschieht.

Sollte während des Installationsprozesses etwas schief gehen, oder einfach nur so, kannst du auch die Server-Logs auf eventuell aufgetretene Fehler überprüfen.

Jetzt bist du dran: Wie sind deine Erfahrungen mit dem ionCube Loader? Lass es uns in den Kommentaren wissen!

David Gwyer

David Gwyer is a WordPress developer at WPGoplugins, JavaScript programmer, and technical writer with 20+ years industry experience. His current development work is focused on creating engaging blocks for the exciting new WordPress Editor. Connect with David on Twitter