Problem mit Cronjob

Hallöle,

ich habe irgendwie ein Problem mit der Ausführung eines Cronjobs auf meinem Linux Server (CentOS, Plesk Onyx).

Dort hatte ich die Cronjobs Anfangs via /bin/sh aufgerufen, da es eine einzel umgebung war. Der Cronjob wurde dort wie folgt aufgerufen und hat problemlos funktioniert:

/opt/plesk/php/7.0/bin/php /var/www/vhosts/domain1.de//httpdocs/bin/console sw:importexport:export -p „article_images“ /files/export/images.csv

Nun habe ich auf chrooted umgestellt und der Cronkob läuft nicht mehr, ich verstehe jedoch nicht warum. Jetzt unter dem chrooted rufe ich den Cronjonb wie folgt auf:

/bin/php /httpdocs/bin/console sw:importexport:export -p „article_images“ /files/export/images.csv

Jetzt erhalte ich jedoch die folgende Meldung:

No entry for terminal type „dumb“;
using dumb terminal settings.
PHP Fatal error: Can’t use method return value in write context in /httpdocs/engine/Shopware/Components/LastArticlesSubscriber.php on line 96

Dort steht folgendes:

if (empty($config->offsetGet(‚lastarticles_show‘))) {
return;
}

Hat hier jemand eine Idee?

Grüße

@yourshoppartner schrieb:

Hallöle,

ich habe irgendwie ein Problem mit der Ausführung eines Cronjobs auf meinem Linux Server (CentOS, Plesk Onyx).

Dort hatte ich die Cronjobs Anfangs via /bin/sh aufgerufen, da es eine einzel umgebung war. Der Cronjob wurde dort wie folgt aufgerufen und hat problemlos funktioniert:

/opt/plesk/php/7.0/bin/php /var/www/vhosts/domain1.de//httpdocs/bin/console sw:importexport:export -p „article_images“ /files/export/images.csv

Nun habe ich auf chrooted umgestellt und der Cronkob läuft nicht mehr, ich verstehe jedoch nicht warum. Jetzt unter dem chrooted rufe ich den Cronjonb wie folgt auf:

/bin/php /httpdocs/bin/console sw:importexport:export -p „article_images“ /files/export/images.csv

Jetzt erhalte ich jedoch die folgende Meldung:

No entry for terminal type „dumb“;
using dumb terminal settings.
PHP Fatal error: Can’t use method return value in write context in /httpdocs/engine/Shopware/Components/LastArticlesSubscriber.php on line 96

Dort steht folgendes:

if (empty($config->offsetGet(‚lastarticles_show‘))) {
return;
}

Hat hier jemand eine Idee?

Grüße

Ich bin gerade dem selbigen Fehler beim installieren begegnet:

PHP Fatal error:  Can’t use method return value in write context in /var/www/html/engine/Shopware/Components/LastArticlesSubscriber.php on line 96

Es soll wohl ein Problem sein, was bei neuern PHP Versionen 5.5+ auftritt

1 Like

Hey @_Max_‍,

das ist ja mal eine kleine Info, aber was genau kann man denn dagegen tun und woher hast du diese Info?

Kann da vielleicht auch jemand von @shopware‍ was zu sagen?

Na ja, ursprünglich hast Du deinen Cronjob ja mit PHP 7.0 ausgeführt. Nach der Umstellung unter chrooted vermute ich mal, dass PHP 5.4 verwendet wird (bei vielen Plesk-Installationen noch als Standard eingestellt).

Also nicht

Es soll wohl ein Problem sein, was bei neuern PHP Versionen 5.5+ auftritt

sondern richtig wahrscheinlich im Gegenteil 5.5-

Viel Erfolg

Geert

Hallo @vanwittlaer‍,

danke für deine Antwort. Ich habe es nun geschafft, in der chrooted umgebung die php version mit der Version 7 zum laufen zu bekommen.

Nun klappen jedoch die Shopware Cronjobs nicht mehr und ich habe gar keine Ahnung mehr wieso.

Ich befinde mich im Shopware Root Verzeichnis.

Rufe ich z.B. php -v auf, zeigt er mir die aktuelle php version an.

Rufe ich jetzt z.B. php /bin/console auf kommt keine Ausgabe, kein Fehler kein gar nichts.

Was kann ich hier tun?

Hi,

der Befehl sollte bei einer chroot Umgebung wie folgt sein, wenn Deine Shopware Installation im httpdocs Ordner ist:

cd /httpdocs
php bin/console

Wenn Du Dich bereits im Shopware Verzeichnis befindest, musst Du den Befehl mit php bin/console aufrufen - andernfalls springst Du zurück auf den Hauptstamm Deines Webspace in´s chroot bin Verzeichnis, wo die console nicht liegt.

VG

 

 

Hi,

php /bin/console

hätte auch ein „/“ zuviel, es müsste aus dem Shopware-Verzeichnis heraus php bin/console heißen. Z.B.

php bin/console sw:plugin:list

Grüße

Geert

Hallo @AIXPRO‍,

Danke für deine Antwort.

Der Behfel wird natürlich ohne den / aus dem Shopware root aufgerufen, das war falsch von mir gepostet. Der Aufruf erfolgt also mit

php bin/console

Leider kommt eben wie gesagt keinerlei output.

Output müsste eigentlich kommen, wenn die PHP Version sauber im chroot installiert ist. Allerdings musst Du bei chroot dann auch noch die config.php von Shopware anpassen und dort anstelle von “localhost” als DB Server 127.0.0.1 eintragen, da Du bei einer chroot Umgebung keinen Zugriff auf die MySQL-Socket Datei hast und MySQL über IP angesprochen werden muss.

VG

Danke für deine Unterstützung.

Wie kann ich den weitere Fehler / die grundsätzliche Prüfung ob PHP Richtig installiert ist in der CHrooted konsole durchführen?

Der Shop selbst ist ja komplett erreichbar, auch ohne die Umstellung von localhost auf die ip.

Bekommst Du denn bei 

php -h

einen Output ?

Ja, es werden die Help Hinweise von / zu php angezeigt

… und die console Datei hat 755 Rechte ?

ja genau

… das sollte dann so funktionieren - hört sich fast danach an, als ob die PHP Implementierung in Deiner chroot Umgebung noch nicht passt - vielleicht diese einfach mal neu aufbauen - Anleitung: https://support.plesk.com/hc/de/articles/213909545--Anleitung-Wie-Sie-dem-Template-der-Chroot-Shellumgebung-neue-Programme-hinzufügen

Wichtig ist zum Abschluss Punkt 6 …