Magento cron.php ne fait rien après son exécution

10

Mon cron Magento fonctionne normalement il y a environ quelques mois. Mais récemment, il a soudainement cessé de générer un calendrier. La commande cron elle-même fonctionne bien sur mon serveur d'hébergement. Il s'agit de Magento ver 1.8.0.0.

Voici ce que j'ai essayé:

  1. J'essaie d'exécuter cron.php dans le navigateur, et cela ne génère pas de planning dans la table cron_schedule.

  2. Installez l'extension AOE Scheduler, en espérant qu'elle puisse résoudre le problème. Je peux générer un planning à l'aide de cette extension, mais Magento cron ne peut pas exécuter le planning cron.

  3. Installez le nouveau Magento ver 1.8.0.0 dans le serveur d'hébergement, puis exécutez cron.php dans le navigateur, la table cron_schedule est toujours vide.

  4. Installez le nouveau Magento ver 1.8.0.0 dans mon hôte local, puis exécutez cron.php dans le navigateur, il génère un calendrier. J'essaie donc de le télécharger sur le serveur d'hébergement. J'efface le cache Magento, puis j'exécute cron.php dans le navigateur, étonnamment rien ne se passe dans la table cron_schedule. Mais cela fonctionne bien dans mon hôte local.

J'ai un autre site Magento ver 1.7.0.2 sur le même serveur d'hébergement, le cron fonctionne bien.

Je ne sais toujours pas quelle est la cause de ce problème, alors je le poste ici. En espérant que quelqu'un a le même problème et partage la solution.

Wakanina
la source
2
J'ai rencontré un problème similaire il y a plusieurs mois. L'interpréteur php en ligne de commande avait une configuration php.ini distincte et la valeur de memory_limit était trop basse pour que les tâches cron échouent. Je ne sais pas si c'est votre problème.
Fiasco Labs
Le memory_limit est 256M et c'est la commande que j'utilise /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1.
Wakanina

Réponses:

24

J'ai trouvé la solution dans les forums ( lien plus en ligne )

Auparavant, j'ai essayé d'installer Magento 1.7.0.2 sur mon serveur d'hébergement et le cron fonctionne bien. J'ai donc supposé que mon hébergement ne pouvait pas exécuter Magento 1.8.0.0 cron, il était donc prévu de rétrograder mon site Magento vers 1.7.0.2. Mais avant de rétrograder mon site, j'ai trouvé la solution sur le lien ci-dessus.

  • Modifier le fichier cron.php
  • Après $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; environ 47, ajoutez cette ligne de code

    $isShellDisabled = true;

Et maintenant, mon cron Magento 1.8.0.0 fonctionne parfaitement.

Wakanina
la source
Dans mon cas, je travaille sur un serveur qui ne m'a donné que des maux de tête en raison d'une configuration ambiguë. C'était la seule façon de faire fonctionner Cron.
pspahn
Cela fonctionne pour wget, mais il vaut mieux changer le nom en eq cron89128923489.php;)
user956584
Cela a aussi fonctionné pour moi. Probablement quelque chose à voir avec les restrictions d'accès au shell.
Daniel West
Link has MageBayVaporated ...
Fiasco Labs
J'ai expliqué pourquoi cette solution de contournement fonctionne et quelle est la vraie solution ici: magento.stackexchange.com/questions/137130/…
Fabian Schmengler
11

La solution donnée par Wakanina a fonctionné pour moi. Cependant, changer le fichier cron.php était en quelque sorte inacceptable dans notre politique. Chose étrange, j'ai déployé mon site sur deux serveurs (avec le même système d'exploitation, la même version PHP) et sur un serveur, il exécute les tâches cron lorsque cron.php est exécuté et sur un autre serveur, rien ne se passe.

J'ai donc dû essayer une meilleure solution qui gardera la preuve de la mise à niveau de mon site.

Au lieu d'exécuter cron.php, j'exécute maintenant cron.sh via crontab -epuisque Linux est utilisé comme OS de serveur.

Rakesh Shewale
la source
2
Voilà comment cela doit être fait.
Robbie Averill
2

Le problème n'est magento_root/cron.phppas réglé sur le serveur crontab. Nous devons ajouter ce fichier dans crontab afin qu'il fonctionne pour nous comme suit.

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

Il devrait y avoir une entrée pour le fichier magento_root / cron.php. Sinon, nous devons ajouter ce fichier car ce fichier est responsable du lancement de vos tâches Magento Cron. Nous devons donc modifier le Crontab comme suit.

# crontab -e

Ajoutez l'instruction suivante dans le fichier et fermez-la après l'avoir enregistrée.

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

Pour plus d'informations, visitez ce lien

saiid
la source