Magento a besoin une fois par jour, ou pas nuit, d’actualiser sa base de données. Cela concerne :
Les règles de prix du catalogue ;
L’envoie des newsletters ;
La génération du sitemap Google ;
Les alertes des utilisateurs (changement de prix, produit de nouveaux en stock) ;
Nettoyage des logs ;
Etc.
Pour cela, Magento est fourni avec un fichier « cron.php » situé à la racine de votre plateforme (/app … /skin … /cron.php) qui en étant exécuté (avec les bons droits) effectue toutes les actions de mises à niveau de Magento.
Il est donc indispensable d’avoir un tâche CRON, un programme qui s’exécute à heure fixe, sur ce fichier cron.php. Nous demandons donc au serveur de lancer ce fichier chaque nuit à la même heure.
CRON depuis le Webmin d’OVH
CRON en SSH
(facultatif) Modification du fichier cron.php
Etape 1 : CRON Depuis le Webmin d’OVH
L’intérêt ici est d’effectuer cette action directement depuis l’interface d’administration des serveurs privés d’OVH, le Webmin et non en SSH.
Connectez-vous à votre Webmin > Système > Tâches cron ( https://rxxxxxxx.ovh.net:10000/cron/ )
Cliquez sur « Créer une nouvelle tâche cron programmée »
Le principe est d’aller à l’essentiel pour éviter de perdre du temps lors des prochaines fois.
Même si le Cron n’est pas la chose la plus difficile pour Magento, il faut quand même le prendre en compte sinon la boutique ne tournera pas correctement.
Le cron peut ne pas s’éxécuter correctement, ce qui se traduit par des règles de prix catalogue non appliquées par exemple (ou le sitemap non mis à jour) : cette page http://magentoexpert.co.uk/tag/crontab/ donne une modification à effectuer dans le fichier cron.php pour corriger le premier bug.
Cette page http://snippi.net/magento-magento-cron-schedule-monitior fournit un code (à adapter) pour surveiller l’état des tâches cron.
En ce qui me concerne je n’ai toujours pas résolu le pb du sitemap non mis à jour par le cron et mes tâches sont toutes en état « pending »…
affaire à suivre
Merci pour vos articles…
Vous serez sûr que votre fichier a bien été appelé en regardant dans var/log/system.log après le passage du cron.
Note : Activez vos logs dans le back-office
@ang : Avez-vous activé le fait de vider les log (Base de données et non fichier) via le cron ? Ceci se trouve dans : Système > Configuration > Avancé > Système > Nettoyage de logs
7 Commentaires pour Mise en place du CRON de Magento sur un serveur privé
Kevin
septembre 23rd, 2009 à 19 h 46 min
J’avais pas du tout pensé au Cron, et votre tutoriel est claire net et précis, merci à vous de partager tout ceci sur le net !
Fred
septembre 23rd, 2009 à 20 h 02 min
Bonjour,
Oui c’est justement le but :).
Le principe est d’aller à l’essentiel pour éviter de perdre du temps lors des prochaines fois.
Même si le Cron n’est pas la chose la plus difficile pour Magento, il faut quand même le prendre en compte sinon la boutique ne tournera pas correctement.
plancton
septembre 30th, 2009 à 15 h 57 min
Le cron peut ne pas s’éxécuter correctement, ce qui se traduit par des règles de prix catalogue non appliquées par exemple (ou le sitemap non mis à jour) : cette page http://magentoexpert.co.uk/tag/crontab/ donne une modification à effectuer dans le fichier cron.php pour corriger le premier bug.
Cette page http://snippi.net/magento-magento-cron-schedule-monitior fournit un code (à adapter) pour surveiller l’état des tâches cron.
En ce qui me concerne je n’ai toujours pas résolu le pb du sitemap non mis à jour par le cron et mes tâches sont toutes en état « pending »…
affaire à suivre
Merci pour vos articles…
Frédéric Martinez
septembre 30th, 2009 à 16 h 05 min
Merci beaucoup de cette précision sur cette mise à jour de CRON. Je vais modifier l’article au passage.
Matthieu
octobre 22nd, 2010 à 2 h 40 min
Bonjour Frederic,
Comment vérifier que le cron est bien passé ?
Merci d’avance, et merci pour votre superbe documentation sur Magento.
ang
décembre 2nd, 2010 à 22 h 15 min
trés bon tuto, j’ai exactement suivi ce que dit frederic martinez, mais tache cron pour vider les log ne fonctionnent pas.
Frédéric Martinez
janvier 4th, 2012 à 21 h 28 min
@Matthieu : Pour être vraiment sûr ?
Mage::log('Log : ok');dans votre fichier cron.php.
Vous serez sûr que votre fichier a bien été appelé en regardant dans var/log/system.log après le passage du cron.
Note : Activez vos logs dans le back-office
@ang : Avez-vous activé le fait de vider les log (Base de données et non fichier) via le cron ? Ceci se trouve dans : Système > Configuration > Avancé > Système > Nettoyage de logs