Pour Hébergement Web et Serveur Dédié Managed

Les tâches cron sont un outil puissant pour automatiser les tâches répétitives. Cependant, si elles sont mal configurées, elles peuvent nuire aux performances de votre site Web ou ne pas être exécutées du tout.

Dans cet article, vous découvrirez les points auxquels vous devez absolument faire attention lors de la création et de la gestion des tâches cron.

1. Ne pas choisir un intervalle d'exécution trop court

Évitez les intervalles de temps trop courts entre les exécutions. Nous recommandons de laisser passer au moins 5 minutes avant d'exécuter à nouveau une tâche cron.

  • Contexte : en cas d'exécution trop fréquente (par exemple toutes les minutes), il peut arriver que des processus se chevauchent en période de forte charge du serveur. Cela peut conduire à des exécutions parallèles qui ralentissent encore plus le serveur et bloquent les processus.

2. Configurer une notification d'erreur (MAILTO)

Pour éviter de devoir consulter manuellement les fichiers log en cas de problème, vous devriez vous faire envoyer les messages d'erreur par e-mail.

Pour ce faire, ajoutez la variable MAILTO à la première ligne de votre fichier crontab :

MAILTO=jean.dupont@exemple.com

3. Utiliser la bonne version de PHP

Si vous souhaitez exécuter directement des scripts PHP, vous devez indiquer le chemin absolu vers l'interpréteur PHP. Assurez-vous également que vous utilisez une version de PHP compatible avec votre script.

Utilisez toujours le chemin complet vers le fichier binaire (par exemple /usr/bin/php8.3).

Version de PHP Chemin d'accès à l'interpréteur  
PHP 8.4 /usr/bin/php8.4  
PHP 8.3 /usr/bin/php8.3  
PHP 8.2 /usr/bin/php8.2  
Legacy (plus ancien) /usr/bin/php8.1
/usr/bin/php8.0
/usr/bin/php7.4
/usr/bin/php7.3
/usr/bin/php7.2
/usr/bin/php7.1
/usr/bin/php5.5
/usr/bin/php5.4
/usr/bin/php5.2
/usr/bin/php4.4
Utilisez idéalement des versions récentes.

Remarque

/usr/bin/php fait référence à PHP 4.4 (via un symlink). Pour éviter les incompatibilités, nous recommandons d'indiquer explicitement le numéro de version (par ex. php8.3).

4. Indiquer le chemin absolu vers le script

Le Cron Daemon ne connaît pas votre dossier actuel. Indiquez donc toujours le chemin complet (absolu) de votre script. Le chemin dépend de la date de création de votre contrat.

Voici un exemple de ligne de tâche cron (exécution toutes les 10 minutes) :

A) Contrats à partir du 17/08/2025 (Nouveau)

*/10 * * * /usr/bin/php8.2 -f /home/www/test.php

B) Contrats conclus avant le 17/08/2025 (stock)

*/10 * * * /usr/bin/php8.2 -f /homepages/12/d12345678/htdocs/test.php

 

Conseil : Si vous n'êtes pas sûr(e) de votre chemin, cet article vous aidera : Déterminer le chemin absolu (Document Root) d'un espace Web

5. Utiliser ses propres paramètres php.ini (requête HTTP)

Si vous ouvrez un script PHP directement via l'interpréteur (comme décrit ci-dessus), les réglages individuels dans votre php.ini sont ignorés.

Si votre script nécessite des paramètres spécifiques dans le php.ini (par exemple memory_limit ou max_execution_time), vous devriez plutôt exécuter le cronjob par requête HTTP via cURL. Cela simule un accès via le navigateur Web.

Exemple :

*/10 * * * /usr/bin/curl -s https://example.com/test.php > /dev/null

 

Utilisation pour la protection des répertoires

Pour les packs d'hébergement partagés (Shared Hosting), nous recommandons, pour des raisons de sécurité, de placer les scripts dans des dossiers protégés par des répertoires. Pour que curl puisse y accéder, vous devez passer le nom d'utilisateur et le mot de passe avec le paramètre -u.

Exemple avec authentification :

*/10 * * * /usr/bin/curl -s -u utilisateur:mot de passe https://example.com/test.php > /dev/null