Module werden für falsche PHP Version ausgespielt

Hallo zusammen,

wir sind gerade dabei, ein Update von Oxid 6.1.6 auf 6.2 durchzuführen, in dessen Rahmen wir auch die PHP-Version von 7.1 auf 7.4 anpassen.

Dabei installieren wir also alle Module für die neue Version neu. Bei bestimmten Modulen kommt es dabei aber im Frontend zu Fehlern:

Fatal error: The file /home/warpxobu/www2.warehouse-one.work/git/html/source/source/modules/dgattributesets/Modul/dgAttributeSets_oxLang.php was encoded by the ionCube Encoder for PHP 5.6 and cannot run under PHP 7.1 or later. Please ask the provider of the script to provide a version encoded with the ionCube Encoder for PHP 7.1. in Unknown on line 0

Wir hatten bereits mit dem Modulhersteller Rücksprache gehalten, fragen uns aber, ob das nicht an einer falsch konfigurierten PHP 7.4 Version liegen kann, da dieser bereits viele erfolgreiche Installationen unter dieser Version hat.

Wir verwenden den Composer-Befehl dabei wie folgt:

/usr/local/php7.4/bin/php ~/_install/composer/1.10.10/composer.phar update --no-dev --no-interaction --ignore-platform-reqs

Wir sprechen auch bereits mit dem Hoster bzgl. der Konfiguration von PHP, aber vielleicht hat hier jmd. eine Idee?

Viele Grüße
Silvan Held

Nein. Der IonCube-Loader 5.x bezieht auch, je nach Einstellung, php 7.1 mit ein. Für 7.2 benötigst Du eine neue Version. Ein ganz normaler Fehler…

nein, das liegt schon am Modul.
Du kannst es dir so vorstellen:
PHP 5.6 ist Windows XP
PHP 7.1 ist Windows Vista
PHP 7.4 ist Windows 10

Das vorliegende Modul wirde für Windows XP entwickelt und funktionierte noch unter Windows Vista. Ihr habt aber nun auf Windows 10 aktualisiert und Composer sagt, dass das Programm, das damals unter VIsta installiert wurde, nun unter Windows 10 nicht mehr funktioniert und du eine neue Version für Windows 10 brauchst, damit du es weiter benutzen kannst.

Ich finde es allerdings komisch, dass in der Fehlermeldung PHP 7.1 und nicht 7.4 steht, aber bei Ioncube sind bestimmte Versionen miteinander kompatibel, vermutlich ist die Verschlüsselung ab PHP 7.1 auch mit 7.4 kompatibel.
Du brauchst also nur ein Modul für PHP 7.4 und das wars schon.

Hallo zusammen,

danke schonmal für die Rückmeldungen.

Ich befürchte aber, dass das nicht so einfach ist, ich habe ja auch schon einiges probiert.

Wir haben den Shop ja von einem 6.1.6 PHP 7.1 auf 6.2.0 PHP 7.4 geupdated. Da an den Shop- und Moduldateien nichts geändert wurde, ergibt es für mich wenig Sinn, warum diese plötzlich für PHP 5.6 verschlüsselt seien. Ich würde hier eher denken, dass der Fehler woanders liegt, denn unter 7.1 lief es ja die ganze Zeit, daher würde ich mich freuen, wenn Sie einmal tiefer nachschauen könnten.

Des Weiteren erhalten wir seit einiger Zeit ein Warning beim Ausführen von Composer:

[email protected]:~/www2.warehouse-one.work/git/html/source$ /usr/local/php7.4/bin/php -d memory_limit=-1 ~/_install/composer/1.10.10/composer.phar update --no-dev --no-interaction --ignore-platform-reqs
Cannot load the ionCube PHP Loader - it was already loaded

Das ist aber schon länger der Fall, ggf. hat das ja etwas damit zu tun.

Und die Moduldateien die wir verwenden sind ja auch 1:1 die, die in anderen PHP 7.1 und 7.4 Shops verwendet werden.

Ggf. hatte ja schonmal jemand etwas Ähnliches?

Danke und viele Grüße
Silvan

Hallo Silvan,

Der erste Fehler direkt aus Deinem Browser sagt, dass exakt diese Datei (und wahrscheinlich auch das gesamte Modul) für eine ältere Kombination aus PHP+ioncube kodiert wurde. Es ist genauso wie es @vanilla_thunder beschrieben hat.

Wenn während Deines Composer-Upates dieses Modul aktualisiert wird, bist Du fast aus dem Schneider. Ergänze in Deinem Composer Befehl --no-scripts. So werden nur die reinen Dateien bewegt, ohne das der Shop geladen wird. Dann bekommst Du während des Updates keine ioncube-Probleme. Wenn die Dateien sauber sind, kannst Du mit “Composer Install” statt Composer Update weiter machen.

Falls dieses Modul nur händisch, ohne Composer aktualisiert werden kann, musst Du den Modulentwickler um eine PHP 7.4 kompatible Ioncube-kodierte Version bitten.

1 Like