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.


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.


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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.