Manchmal finden wir ein PHP-Skript, das durch ionCube geschützt ist, und wenn wir das entsprechende Modul nicht installieren, werden solche Dateien von unserem Server nicht unterstützt. In diesem kleinen Tutorial lernen wir, wie man ionCube Loader auf einem Ubuntu-Server installiert , obwohl es in den meisten Linux-Distributionen (CentOS, Debian usw.) anwendbar ist.
In PHP geschriebene Anwendungen weisen das Problem auf, dass ihr Quellcode bei der Verteilung uneingeschränkt zugänglich ist. Angesichts dieser Notwendigkeit, den PHP-Code zu schützen, erschienen verschiedene Technologien auf dem Markt, darunter ionCube und Zend Guard .
Heute werden wir uns auf ionCube konzentrieren, da es genügend kommerzielle Skripte gibt, die in PHP geschrieben sind und die Installation von ionCube erfordern. Ein Beispiel für ein bekanntes kommerzielles Skript, das ionCube benötigt, ist WHMCS (Web Hosting Automation Made Easy) .
Wie installiere ich ionCube Loader auf einem Server mit Ubuntu?
Vorherige Schritte vor der Installation von ionCube Loader.
Vor der Installation von ionCube Loader müssen einige vorbereitende Schritte ausgeführt werden, um die Eigenschaften unseres Servers zu kennen. Dazu benötigen wir einen SSH-Zugang zum Server, zum Beispiel mit PuTTY .
Zunächst müssen wir die Art der Architektur unserer PHP-Installation kennen, dh, ob es sich um eine 32-Bit- oder eine 64-Bit-Architektur handelt. Wenn auf unserem Server das Betriebssystem in der 64-Bit-Version installiert ist, ist es sehr wahrscheinlich, dass das 64-Bit-PHP-Paket installiert ist, aber wir werden es sicherstellen.
Wir verwenden den nano
Editor, um eine Datei im Stammverzeichnis unseres Webservers zu erstellen. In meinem Fall ist das Stammverzeichnis des Servers /var/www/html/
, der auszuführende Befehl wäre also:
sudo nano /var/www/html/info.php
Ich füge als Dateiinhalt ein:
<?php phpinfo(); ?>
Ich speichere die Änderungen mit der Tastenkombination CTRL+O
und schließe den Editor mit der Tastenkombination CTRL+X
Jetzt müssen wir nur noch über den Browser auf die Datei info.php
zugreifen. In meinem Fall habe ich die Server-IP in der URL verwendet: http://ip_servidor/info.php
Auf der im Browser angezeigten phpinfo-Seite müssen wir auf die von uns installierte PHP-Version achten, die über allem in der Kopfzeile steht (siehe Bild) . Wir müssen auch die Zeile «System» konsultieren, da wenn sie mit x86_64 endet, unser PHP-Paket 64-Bit ist und wenn es mit i686 endet, es 32-Bit ist .
Wir müssen auch den Pfad der PHP-Erweiterungen kennen, der in den phpinfo-Informationen durch die Namenszeile «extension_dir» gekennzeichnet ist .
Wenn wir diese Informationen von unserem Server kennen, können wir jetzt mit der nächsten Phase fortfahren, in der wir die ionCube Loader-Erweiterung für PHP installieren.
Installieren Sie den ionCube Loader.
Zuerst gehen wir zur offiziellen Download- Seite von ionCube Loader und kopieren die URL des tar.gz
Pakets, das der Architektur unseres Servers entspricht. In unserem 64-Bit-Fall laden wir die Datei mit dem folgenden Befehl auf den Server herunter:
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Als nächstes dekomprimieren wir das Paket mit dem Befehl:
tar xvfz ioncube_loaders_lin_x86-64.tar.gz
Der ioncube
Ordner mit mehreren Dateien wird automatisch erstellt. In unserem Fall ist die PHP-Version 7.0.15, daher verwenden wir die Datei ioncube_loader_lin_7.0.so
. Wir kopieren diese Datei in den PHP-Erweiterungsordner, den wir in den vorherigen Schritten erhalten haben und führen dazu den Befehl aus :
sudo cp ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012/
Ändern Sie die PHP-Einstellungen, um die ionCube Loader-Erweiterung zu laden.
An dieser Stelle können wir nur die PHP-Konfiguration ändern, um die Erweiterung von ionCube Loader zu laden. Wir können dies auf zwei Arten tun:
- Ändern Sie die Datei
php.ini
direkt. - Erstellen Sie eine zusätzliche Konfigurationsdatei, um die Erweiterung zu laden.
Von diesen beiden Methoden ist die erste so einfach wie das Auffinden der Konfigurationsdatei php.ini und das Hinzufügen der Zeile:
zend_extension = "/usr/lib/php/20151012/ioncube_loader_lin_7.0.so"
Starten Sie den Server neu und die Installation wäre abgeschlossen.
Die zweite Option ist etwas komplexer, kann jedoch Konflikte mit anderen Erweiterungen vermeiden. Um die zusätzliche Konfigurationsdatei zu erstellen, verwenden wir nano
und der Pfad entspricht der Zeile “Dieses Verzeichnis nach zusätzlichen INI-Dateien durchsuchen” von phpinfo, in unserem Fall /etc/php/7.0/apache2/conf.d
.
Der Name der Konfigurationsdatei hat das Präfix 00
, dies garantiert, dass sie zuerst geladen wird, bevor die restlichen Konfigurationsdateien geladen werden. Wir führen den Befehl aus:
sudo nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini
Ich füge den Inhalt der Datei als Zeile ein:
zend_extension = "/usr/lib/php/20151012/ioncube_loader_lin_7.0.so"
Der Server muss nur neu gestartet werden und die Installation von ionCube Loader ist abgeschlossen. Um in Ubuntu 16.04 neu zu starten, führen wir den folgenden Befehl aus:
- Wenn wir Apache benutzen:
sudo systemctl restart apache2.service
- Wenn wir Nginx verwenden:
sudo systemctl restart nginx
- Wenn wir php-fpm benutzen:
sudo systemctl restart php7.0-fpm.service
Nach dem Neustart können wir überprüfen, ob die ionCube-Erweiterung installiert ist, indem wir auf die URL http://ip_servidor/info.php
zugreifen. Im Text wird “ionCube PHP Loader (enabled)” angezeigt, wie in der folgenden Abbildung dargestellt:
Der letzte Schritt wäre, die info.php
Datei zu löschen, da wir sie nicht benötigen und sie ein Sicherheitsrisiko darstellen kann, wenn sie öffentlich zugänglich ist .