Problem

Beim Ausführen von Cronjobs kommt es zu dieser Fehlermeldung:


Can't use method return value in write context in [...]


Ursache

Diese Meldung tritt auf, wenn der Cronjob PHP 5.4 oder älter nutzt.


Sehr wahrscheinlich wird im ausgeführten PHP-Code die Funktion "empty" genutzt, und dieser wird ein Funktionsaufruf als Parameter übergeben (anstatt einer einfachen Variable). Das funktioniert in PHP 5.4 oder älter jedoch nicht, siehe: http://php.net/manual/de/function.empty.php


Lösung

Der Cronjob muss zur Ausführung mindestens PHP 5.5 nutzen.


Bitte beachten

Es ist durchaus möglich, dass ein Cronjob mit einer anderen PHP-Version ausgeführt wird als der Magento-Shop selbst. Über den Aufruf von "phpInfo" ist das nicht zu erkennen. "phpInfo" zeigt nur die Version, die vom Webserver (Apache, nginx) genutzt wird.


Prüfen Sie in der Cronjob-Konfiguration (z.B. mit dem Befehl "crontab -e" oder über das Admin-Panel Ihres Webhosters), welche PHP Executable-Version verwendet wird. Es muss eine PHP Executable mit Version 5.5 oder höher genutzt werden.


Wenn in den Magento-Scripten "cron.php" oder "cron.sh" explizit eine PHP-Version festgelegt wurde, kann das ebenfalls zu dem Problem führen. Standardmäßig steht in diesen Scripten keine feste PHP-Version.



Dieses Support-Portal wird von der Netresearch DTT GmbH zur Verfügung gestellt. Netresearch ist spezialisiert auf die Entwicklung von E-Commerce-Lösungen für den Mittelstand auf Basis der Open-Source-Systeme Magento und OroCommerce. Neben der Konzeption und Umsetzung von Strategien für B2B-E-Commerce sind Consulting und Betreuung für eine moderne Cloud-Infrastruktur die Schwerpunkte.