Remplacer le cron de wordpress par une vraie cron task avec wp-cli

Remplacer le cron de Wordpress par une cron task WP-Cli
Dites au revoir au cron de wordpress

Comme le nom de l’article l’indique, on va désactiver le cron de wordpress et le remplacer par une vraie cron task sous ubuntu, en faisant appel à wp-cli. Pour ce faire vous devez disposer évidemment d’un serveur ubuntu disposant d’un lamp stack et avoir préalablement installé wp-cli évidemment aussi.

Pourquoi se débarasser du cron de wordpress ?

WordPress, et de nombreux plugins, utilisent le cron pour éxécuter des tâches à intervalles de temps régulier (une fois par jour, deux fois par jour, toutes les heures …). Ces tâches peuvent par exemple servir à vérifier si il existe des mises à jour de WordPress, de plugins ou de thèmes disponibles, faire des sauvegardes … Le problème, c’est que par défaut, ce sont les visiteurs qui déclenchent ces opérations. Si vous avez un site avec de nombreux visiteurs quotidiens, tout fonctionnera donc parfaitement, si par contre il n’y a pas beaucoup d’activité, les tâches ne s’éxécuteront d’une part pas dans l’intervalle de temps prédéfini et d’autre part côté serveur, au moment ou les opérations sont déclenchées, la liste risque d’être longue à traiter en fonction du nombre de plugin installés et des opérations demandés.

En utilisant une vraie cron task côté serveur faisant appel à wp-cli, vous avez la certitude que chaque tâche s’éxécutera exactement (enfin à la minute près) au moment ou elle est prévue. Cela permettra surtout à chaque plugin de fonctionner correctement (de nombreuses personnes se plaignent par exemple de plugin d’optimisation ou de sauvegarde qui ne marchent pas, alors qu’il s’agit d’un problème de cron) ou à votre WordPress de se mettre à jour automatiquement si vous l’aviez prévu ainsi.

Désactiver le cron de votre site WordPress

On va commencer par éditer le fichier wp-config.php situé à la racine de votre WordPress (en remplacant bien sur MONSITE par le répertoir qui contient votre installation de wordpress) …

et on va simplement ajouter la ligne suivante :

Création d’un script bash

On va maintenant créer un nouveau fichier dans votre home (remplacez USER et MONSITE) qui se chargera d’exécuter les tâches de votre site lorsqu’il sera appelé.

Et collez le code suivant dedans en prenant soin encore une fois de remplacer MONSITE par le répertoire ou se situe votre installation de WordPress

Donner les droits d’éxécution du fichier

On exécute le script pour vérifier que tout fonctionne, si aucun message d’erreur ne s’affiche on est opérationnel

Mettre en place la crontask

On va commencer par afficher la liste des cron tasks (pas de sudo)

Et on ajoute un tâche qui s’éxécutera toutes les minutes. En procédant ainsi, notre cron task se charge de vérifier les tâches programmés, si une tache est dans la file d’attente et doit être exécutée elle s’éxecutera sinon rien ne se passe, tout simplement.

Et voilà, on a maintenant un cron à toute épreuve qui s’éxecutera quoi qu’il arrive !

Si vous voulez pouvoir visualiser la liste des tâches de votre WordPress, le plugin FFF Cron Manager vous permet de les visualiser et de voir leur planification.

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*