Suite à 10 erreurs d'exécution consécutives, une tâche planifiée (CRON) a été désactivé :
Commande exécutée : www/aamycron/sitemap_generator.php
Ces erreurs d'exécution sont généralement causées par une anomalie dans le code ou un temps d'exécution trop long.
Je viens de recevoir cet email. Ce qui m'ennuie est que cela ne me dit pas où est l'erreur. Parce que mon code est bon, si j'appelle la page php avec un navigateur, tout marche bien, et cela s'éxécute…
Bonjour,
Avez-vous été voir dans vos logs ?
Attention, le moteur PHP utilisé n'est pas le même entre une page appelée en HTTP et via CRON.
Il n'y a rigoureusement rien dans mes logs, sinon mes propres tests.
Le script ne s'est pas éxécuté à l'heure attendue, et je ne sais pas pourquoi.
J'ai bien compris que ce n'est pas le même moteur php, mais concrètement, comment dois-je faire pour que mon script qui marche en HTTP marche en CRON ?
Dans vos logs de type CRON il y a forcément des traces de type "## OVH ## END…" avec le code exitcode qui apparaît en fin de script. S'il est différent de 0 c'est qu'il y a eu une erreur.
Pour afficher les erreurs dans mes scripts PHP en CRON, voici ce que je positionne au début de mon script PHP :
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('log_errors', '1');
Les différences entre HTTP et CRON par exemple : pas d'accès à la variable $_SERVER.
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('log_errors', '1');
Je vais essayer cela, j'avais écrit quelque chose d'un peu différent, je rêve d'avoir un message d'erreur qui me dise ce qui ne va pas.
> [2022-03-24 10:30:01] ## OVH ## START - 2022-03-24 10:30:01.538666 executing: /usr/local/php7.4/bin/php /homez.329/moteurna/home/moteurna-external/aamycron/sitemap_generator.php
> [2022-03-24 10:30:01] ## OVH ## ERROR command '/usr/local/php7.4/bin/php' not found
> [2022-03-24 10:30:01]
> [2022-03-24 10:30:01] ## OVH ## END - 2022-03-24 10:30:01.553733 exitcode: 255
> [2022-03-24 11:30:01] ## OVH ## START - 2022-03-24 11:30:01.749853 executing: /usr/local/php7.4/bin/php /homez.329/moteurna/home/moteurna-external/aamycron/sitemap_generator.php
> [2022-03-24 11:30:01] ## OVH ## ERROR command '/usr/local/php7.4/bin/php' not found
> [2022-03-24 11:30:01]
> [2022-03-24 11:30:01] ## OVH ## END - 2022-03-24 11:30:01.765481 exitcode: 255
> [2022-03-24 12:30:02] ## OVH ## START - 2022-03-24 12:30:02.066718 executing: /usr/local/php7.4/bin/php /homez.329/moteurna/home/moteurna-external/aamycron/sitemap_generator.php
> [2022-03-24 12:30:02] ## OVH ## ERROR command '/usr/local/php7.4/bin/php' not found
> [2022-03-24 12:30:02]
> [2022-03-24 12:30:02] ## OVH ## END - 2022-03-24 12:30:02.080978 exitcode: 255
> [2022-03-24 13:30:01] ## OVH ## START - 2022-03-24 13:30:01.702325 executing: /usr/local/php7.4/bin/php /homez.329/moteurna/home/moteurna-external/aamycron/sitemap_generator.php
> [2022-03-24 13:30:01] ## OVH ## ERROR command '/usr/local/php7.4/bin/php' not found
> [2022-03-24 13:30:01]
> [2022-03-24 13:30:01] ## OVH ## END - 2022-03-24 13:30:01.715387 exitcode: 255
> [2022-03-24 14:30:01] ## OVH ## START - 2022-03-24 14:30:01.479662 executing: /usr/local/php7.4/bin/php /homez.329/moteurna/home/moteurna-external/aamycron/sitemap_generator.php
> [2022-03-24 14:30:01] ## OVH ## ERROR command '/usr/local/php7.4/bin/php' not found
> [2022-03-24 14:30:01]
> [2022-03-24 14:30:01] ## OVH ## END - 2022-03-24 14:30:01.496390 exitcode: 255
Oui, je reviens, je n'ai pas le temps de travailler là-dessus, tous les jours.
Quel est le bon chemin pour accéder à php ?
Ce n'est pas vous qui choisissez le chemin, vous spécifiez la version PHP dans la config de chaque tâche.
Mais je viens de vérifier, PHP 7.4 est bien dispo pour le CRON, mais peut-être qu'il y a encore cette histoire de 'stable' vs 'stable64'. Essayez de passer en PHP 7.3.
C'est bon, cela marche en PHP 7.3 Stable. Mais à la réflexion, c'est vieux tout cela.
Je viens donc de passer mon site en PHP 8.1 Stable64.
Pour le cron, je l'ai passé en PHP 8.1 sans indication de "stable" ou "stable64" (je n'ai pas ce choix).
J'espère que cela va marcher.
Ouf, cela a marché !
Moi qui 'arrachais les cheveux parce que je ne comprenais pas pourquoi cela ne marchais pas en PHP 7.4, j'avais été déçu de redescendre en 7.3, mais je viens de passer tout mon site en PHP 8.1, et tout marche.
On peut clore ce sujet.