Cron des Vision DHL Adapter stört gesamte Cron Ausführung

Hallo,

habe mich heute mal ran gesetzt die Crons vom Server ausführen zu lassen. Ansich keine Sache…
ber sowohl unter PHP 7.0.21 als auch unter PHP 5.6.31 jeweils mit entsprechenden IonCubeLoader Versionen hängt er sich hieran beim Cron ausführen auf - reproduzierbar:

Geplante Aufgabe ausführen

Die Aufgabe “/usr/bin/php /var/www/vhosts/xxxxxx.de/httpdocs/bin/console sw:cron:run” wurde in 0 Sekunden abgeschlossen, jedoch traten Fehler auf

PHP Fatal error:
The file /var/www/vhosts/xxxxxxx.de/httpdocs/engine/Shopware/Plugins/Community/Backend/ViisonDHL/Bootstrap.php was encoded
with the PHP 5.6 ionCube Encoder and requires PHP 5.6 to be installed.
in Unknown on line 0

Deaktiviere ich den DHL Adapter 4.5.4 in Shopware 5.2.x dann laufen alle anderen Cron wie sie sollen ohne Fehler durch.

Nun kann ich aber schwer auf unser Versandplugin verzichten - was könnten wir tun um zu einer Lösung zu gelangen? Jemand einen Tipp? Danke schon mal. :slight_smile:

Grüße

Du musst den Ioncube auch für die CLI einbinden … im Normallfall hast du in /etc/php/x.x/ einen apache2 Ordner und einen cli Ordner. In beiden musst die Einbindung erfolgen, Google am Besten nach Ioncube CLI.

1 Like

Ok, ich recherchier mal in die vorgeschlagene Richtung. Danke schon mal. :slight_smile:

Ich sollte vielleicht noch dazu sagen, das beide php Versionen so wie sie sind von Plesk ausgeliefert und mit Updates versorgt werden. Shopware selbst meldet übrigens bez. IonCube alles im grünen Bereich und es ist auch nach weiteren Tests ausschließlich der DHL Adapter bzw. dessen Cron der jetzt etwas rumzickt.

Ergänzung 1 :

php 5.6.31 läuft mit IonCube 6.0.7
php 7.0.21 läuft mit IonCube 6.0.7 also wohl die gleiche Version

Ich schau gerade in der etc/php5/cli/php.ini ob da der IonCubeloader entsprechend angesprochen wird…

 

Ergänzung 2:

In besagter php.ini steht nichts, dafür unter opt/plesk/php/7.0/etc/php.d/00-ioncube-loader.ini:

zend_extension=ioncube_loader_lin_7.0.so

In der similaren php 5.6 Datei steht: 

zend_extension=ioncube_loader_lin_5.6.so

Das sind ja wohl Hostingthemen, keine Shopware-Themen. Schaue mal in diese Richtung (Support des Hosters, Google etc.)

Hi,

entweder musst Du den ionCube Loader in der /etc/php5/cli/php.ini einbinden, die Dein OS verwendet (ist im Standard nicht der Fall) oder aber den Cronjob wie folgt aufrufen:

/opt/plesk/php/5.6/bin/php /var/www/vhosts/xxxxxx.de/httpdocs/bin/console sw:cron:run

bzw. für PHP7

/opt/plesk/php/7.0/bin/php /var/www/vhosts/xxxxxx.de/httpdocs/bin/console sw:cron:run

VG

1 Like

Hallo AIXPRO,

In den entsprechenden conf.d Dateien (auch unter /cli/ ) wird der IonCubeLoader stets mit aufgerufen/aktiviert - gerade noch mal alle durchgesehen.

Ich vermute mal es liegt an der auf dem Server laufenden Distribution Ubuntu 14.04 LTS mit entsprechend PHP 5.5.9 als Distribution Version von PHP die zwar stetig mit Sicherheitspatches versorgt wird, aber eben nicht mit neuen Funktionen und eben auch keine php 5.6.x was vermutlich am Ende das Problem sein wird/könnte.

Sprich: Shopware läuft unter php 7.0.21 (mit aktivem Ioncubeloader 6.0.x) aber der vom Server angestoßene CronJob läuft unter der Distribution php Version 5.5.9 und entsprechend mit einer zu alten Version des Ioncubeloaders für den DHL Adapter (der verlangt nach 5.6).

Eine aktuellere Distribution ist erst für Herbst/Winter vorgesehen - gemeinsam mit einem neuen Server. Bis dahin werde ich die Cron eben erstmal nicht über cli anstoßen sondern über die veraltete Methode. Eine andere Lösung seh ich da gerade nicht.

 

Deine aufgeführten Alternativen über opt/plesk/… funktionieren nicht, es kommt eine andere Fehlermeldung die besagt, das er die Datei nicht finden konnte. Was das angeht bin ich gerade auch ein wenig ratlos, da selbiger Tipp auch anderswo als funktionierend empfohlen wurde. Hmm…

Dennoch auch dir Danke schon mal fürs bemühen mir zu helfen. :slight_smile:

Grüße

Hi,

wenn die Meldung erscheint, dass Dein Server PHP mit dem alternativen Plesk Pfad nicht findet, könnte die Ursache sein, dass Du bei der entsprechenden Domain unter „FTP Benutzer“ keine Shell ausgewählt hast oder /bin/bash (chrooted) (= die Jailkit Shell, bei der Du in Deinem vHost gefangen bist). Falls dies der Fall ist, die Shell auf /bin/bash umstellen, dann sollte es klappen.

VG

Hi,

habs eben mal umgestellt auf /bin/bash - ja, war bisher auf /bin/bash (chrooted) und den Cron so aufgerufen (Shopware läuft aktuell unter php 5.6.31):

/opt/plesk/php/5.6/bin/php /var/www/vhosts/xxxxx.de/httpdocs/bin/console sw:cron:run

Ergebnis:

Die Aufgabe “/opt/plesk/php/5.6/bin/php /var/www/vhosts/xxxxx.de/httpdocs/bin/console sw:cron:run” wurde in 0 Sekunden abgeschlossen, jedoch traten Fehler auf

/bin/sh: 1: /opt/plesk/php/5.6/bin/php /var/www/vhosts/xxxxx.de/httpdocs/bin/console: not found

Die Datei “php” existiert auch unter /opt/plesk/php/5.6/bin/, und unter /var/www/vhosts/xxxxx.de/httpdocs/bin/console existiert auch die Datei “console”.

Hi,

hat die console Datei 755 Rechte ?

VG

Sie hat 775 Rechte - ändern? Hab das Ganze mal von der Console aus mit:

/var/www/vhosts/xxxxx.de/httpdocs/bin/console sw:cron:run

Probiert - das geht, aber gibt mir halt wegen des DHL Adapters dies zurück:

PHP Fatal error:
The file /var/www/vhosts/xxxxx.de/httpdocs/engine/Shopware/Plugins/Community/Backend/ViisonDHL/Bootstrap.php was encoded
with the PHP 5.6 ionCube Encoder and requires PHP 5.6 to be installed.
 in Unknown on line 0

 

Ergänzend:

Den Cron unter Plesk angelegt, aber als URL aufgerufen über https://www.xxxxx.de/backend/cron funktioniert ohne Fehler - ist aber natürlich depricated, ich weiß - und somit keine Dauerlösung. Wäre daher schön, wenn es auf dem korrekten Wege laufen tät… 
 

Versuch mal folgenden Befehl von der Konsole oder als Aufgabetyp „Befehl ausführen“ Plesk:

cd /var/www/vhosts/deinedomain.de/httpdocs/ && /opt/plesk/php/7.0/bin/php bin/console sw:cron:run

VG

1 Like

Hallo,

das funktioniert so nun ohne Fehler unter php 7.0.21 - dickes danke schon mal. :slight_smile:  Kannst du noch was zu sagen, warum dies nun so funktioniert und nicht wie eingangs versucht? Ich bin lernwillig. :wink:

Grüße

Hi,

die SW console muss aus dem Shopware Verzeichnis heraus aufgerufen werden. Bei dem vorherigen Befehl wurde diese nicht gefunden.

VG

1 Like