Magento cron.php tut nichts, nachdem es ausgeführt wurde

10

Mein Magento Cron funktioniert normalerweise vor ein paar Monaten. Aber in letzter Zeit wird plötzlich kein Zeitplan mehr erstellt. Der Befehl cron selbst läuft auf meinem Hosting-Server einwandfrei. Es ist Magento Version 1.8.0.0.

Folgendes habe ich versucht:

  1. Ich versuche, cron.php im Browser auszuführen, und es wird kein Zeitplan in der Tabelle cron_schedule generiert.

  2. Installieren Sie die AOE Scheduler-Erweiterung, in der Hoffnung, dass das Problem dadurch behoben werden kann. Mit dieser Erweiterung kann ich einen Zeitplan erstellen, aber Magento Cron kann den Cron-Zeitplan nicht ausführen.

  3. Installieren Sie das neue Magento Version 1.8.0.0 auf dem Hosting-Server und führen Sie dann cron.php im Browser aus. Die Tabelle cron_schedule ist noch leer.

  4. Installieren Sie das neue Magento Version 1.8.0.0 in meinem lokalen Host und führen Sie dann cron.php im Browser aus. Dadurch wird ein Zeitplan generiert. Also versuche ich es auf den Hosting Server hochzuladen. Ich lösche den Magento-Cache und führe dann cron.php im Browser aus. Überraschenderweise passiert in der Tabelle cron_schedule nichts. Aber es funktioniert gut in meinem lokalen Host.

Ich habe eine andere Magento-Site Version 1.7.0.2 auf demselben Hosting-Server. Der Cron funktioniert einwandfrei.

Ich weiß immer noch nicht, was die Ursache für dieses Problem ist, also poste ich es hier. Ich hoffe, dass jemand das gleiche Problem hat und teile die Lösung.

Wakanina
quelle
2
Ich bin vor einigen Monaten auf ein ähnliches Problem gestoßen. Der Befehlszeilen-PHP-Interpreter hatte eine separate php.ini-Konfiguration und das memory_limit war zu niedrig eingestellt, damit die Cron-Jobs fehlschlagen würden. Ich bin mir nicht sicher, ob dies Ihr Problem ist.
Fiasko Labs
Das memory_limit ist 256M und dies ist der Befehl, den ich benutze /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1.
Wakanina

Antworten:

24

Ich habe die Lösung in den Foren gefunden ( Link nicht mehr online )

Zuvor habe ich versucht, Magento 1.7.0.2 auf meinem Hosting-Server zu installieren, und der Cron läuft einwandfrei. Daher ging ich davon aus, dass auf meinem Hosting Magento 1.8.0.0 cron nicht ausgeführt werden kann. Daher war geplant, meine Magento-Site auf 1.7.0.2 herunterzustufen. Bevor ich meine Website herunterstufte, fand ich die Lösung über den obigen Link.

  • Bearbeiten Sie die Datei cron.php
  • Fügen Sie nach $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; ungefähr # 47 diese Codezeile hinzu

    $isShellDisabled = true;

Und jetzt läuft My Magento 1.8.0.0 Cron perfekt.

Wakanina
quelle
In meinem Fall arbeite ich an einem Server, der mir aufgrund der mehrdeutigen Konfiguration nur Kopfschmerzen bereitet hat. Nur so konnte ich Cron zum Laufen bringen.
pspahn
Es funktioniert für wget, aber ändern Sie den Namen besser in eq cron89128923489.php;)
user956584
Das hat auch bei mir funktioniert. Wahrscheinlich etwas mit Shell-Zugriffsbeschränkungen zu tun.
Daniel West
Link hat MageBayVaporated ...
Fiasko Labs
Ich erklärte, warum diese Problemumgehung funktioniert und was die wirkliche Lösung hier ist: magento.stackexchange.com/questions/137130/…
Fabian Schmengler
11

Die von Wakanina gegebene Lösung hat für mich funktioniert. Das Ändern der Datei cron.php war in unserer Richtlinie jedoch nicht akzeptabel. Seltsam ist, dass ich meine Site auf zwei Servern (mit demselben Betriebssystem, derselben PHP-Version) bereitgestellt habe und auf einem Server Cron-Tasks ausführt, wenn cron.php ausgeführt wird und auf einem anderen Server nichts passiert.

Also musste ich eine bessere Lösung ausprobieren, die meinen Site-Upgrade-Beweis bewahrt.

Anstatt cron.php auszuführen, führe ich jetzt cron.sh durch, crontab -eda Linux als Server-Betriebssystem verwendet wird.

Rakesh Shewale
quelle
2
So sollte es gemacht werden.
Robbie Averill
2

Das Problem magento_root/cron.phpwurde nicht auf dem Server festgelegt crontab. Wir müssen diese Datei in crontab hinzufügen, damit sie für uns wie folgt funktioniert.

# crontab -l (this command will list all the Cron jobs in Crontab)

Es sollte einen Eintrag für die Datei magento_root / cron.php geben. Wenn nicht, müssen wir diese Datei hinzufügen, da diese Datei für die Initiierung Ihrer Magento Cron-Jobs verantwortlich ist. Wir müssen die Crontab also wie folgt bearbeiten.

# crontab -e

Fügen Sie der Datei die folgende Anweisung hinzu und schließen Sie sie nach dem Speichern.

* / 5 * * * * wget -O / dev / null -q path_to_magento_root / cron.php> / dev / null

Weitere Informationen finden Sie unter diesem Link

sagte
quelle