Problème de CRON lesbricooleuses.fr
... / Problème de CRON lesbrico...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Problème de CRON lesbricooleuses.fr

by
Community Deleted user
Created on 2021-03-05 08:45:45 (edited on 2024-09-04 10:47:01) in Tâches automatiques (cron)

Bonjour,

Je m'adresse à vous car j'ai un problème avec un CRON et je n'obtiens pas d'infos utilisables de la part du support qui m'a renvoyé vers vous.

J'ai un VPS (OVH) sur lequel tourne 2 sites : **toutle04.fr** et **toutle05.fr** Pour chacun de ces sites un CRON **tourne chaque soir avec succès**. Il a pour objectif de vider puis recharger le cache de mon site (plugin WP Rocket) Il est installé sous www. Le script du CRON est indiqué en fin de message.

J'ai un hébergement Web **lesbricooleuses.fr** (OVH) sur lequel le cron est installé également à la racine. Mais il ne fait rien. Dans mes logs je n'ai ni Exitcode 0 ni 255. J'ai juste le message suivant:
2021-03-04T03:09:01+01:00 OVHCRON[16961/402157]: INFO ## OVH ## START - Executing CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) from /home/lesbrip as lesbrip
2021-03-04T03:09:03+01:00 OVHCRON[16961/402157]: INFO ## OVH ## END - CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) executed successfully in 2s

Pour vérifier le bon fonctionnement du CRON je l'ai lancé via le navigateur et il fonctionne très bien. Je peux le vérifier en accédant au répertoire de cache de mon FTP.

Je vous remercie par avance de l'aide que vous pourriez m'apporter car je ne vois vraiment pas ce qui ne fonctionne pas.

Philippe

// Load WordPress.
require( 'wp-load.php' );

// Clear cache.
if ( function_exists( 'rocket_clean_domain' ) ) {
rocket_clean_domain();
}

// Preload cache.
if ( function_exists( 'run_rocket_sitemap_preload' ) ) {
run_rocket_sitemap_preload();
}


5 Replies ( Latest reply on 2021-03-07 18:21:03 by
Community Deleted user
)

Bonjour,

sur un mutu les cron doivent utiliser des chemins absolus.

Du coup je suis prêt à parier que require( 'wp-load.php' ); ne fait rien car il trouve pas le fichier et après c'est fini.

Cordialement, janus57

Bonsoir Janus57,

Je ne suis pas un grand technicien. Qu'entends-tu par chemin absolu ?
est-ce que je dois modifier mon script php et rempalcer 'wp-load.php' par 'https://monsite/wp-load.php' ?
Merci de ton retour.
Philippe

Bonjour,

petite doc OVH : https://docs.ovh.com/fr/hosting/mutualise-taches-automatisees-cron/#depannage
section "Vérification de l’utilisation des chemins absolus".

Cordialement, janus57

Merci,

Je regarde cela.
Cordialement.
Philippe

Bonjour Janus57,
2 jours que je tourne en rond. Je lis et relis toutes les docs. Je fais des changements et rien n'y fait. En résumé : Dans le manager d'OVH, la commande à exécuter est **www/rocket-clean-domain.php** A priori il l'a trouve puisque je retrouve ceci dans mes logs

_2021-03-06T03:09:01+01:00 OVHCRON[22725/402157]: INFO ## OVH ## START - Executing CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) from /home/lesbrip as lesbrip_
_2021-03-06T03:09:02+01:00 OVHCRON[22725/402157]: INFO ## OVH ## END - CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) executed successfully in 1s_

J'ai essayé de changer le chemin mais à chaque fois le script php n'est pas trouvé.

D'un autre côté, lorsque le script php est trouvé rien ne s'exécute. Ce qui tendrait à penser qu'il est faux et là, je suis perdu car c'est le script que m'a donné WP Rocket et je ne suis pas calé en php.

Si je savais comment faire je ferais des tests partout pour voir où est l'erreur. Du style
- écrire si wp-load est trouvé
- écrire si fonction 1 trouvée
- écrire si fonction 2 trouvée

En attendant, j'ai changé **require( 'wp-load.php' );** par **require( '/www/wp-load.php' );**
et j'ai eu une erreur 255

021-03-06T21:09:01+01:00 OVHCRON[4755/402157]: INFO ## OVH ## START - Executing CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) from /home/lesbrip as lesbrip
2021-03-06T21:09:01+01:00 OVHCRON[4755/402157]: DEBUG PHP Warning: require(/www/wp-load.php): failed to open stream: No such file or directory in /home/lesbrip/www/rocket-clean-domain.php on line 3
2021-03-06T21:09:01+01:00 OVHCRON[4755/402157]: DEBUG PHP Warning: require(/www/wp-load.php): failed to open stream: No such file or directory in /home/lesbrip/www/rocket-clean-domain.php on line 3
2021-03-06T21:09:01+01:00 OVHCRON[4755/402157]: DEBUG PHP Fatal error: require(): Failed opening required '/www/wp-load.php' (include_path='.:/usr/local/php7.3/lib/php') in /home/lesbrip/www/rocket-clean-domain.php on line 3
2021-03-06T21:09:01+01:00 OVHCRON[4755/402157]: ERR ## OVH ## END - CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) executed with error(s) in 0s. Return code : 255

Ensuite j'ai changé **require( 'wp-load.php' );** par **require( 'www/wp-load.php' );**

2021-03-06T22:09:01+01:00 OVHCRON[5625/402157]: INFO ## OVH ## START - Executing CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) from /home/lesbrip as lesbrip
2021-03-06T22:09:03+01:00 OVHCRON[5625/402157]: INFO ## OVH ## END - CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) executed successfully in 1s

Pas d'erreur mais il ne s'est rien passé.

Je ne sais plus quoi faire.
Auriez vous une idée au vue de ces résultats de test?

Merci de votre aide.
Cordialement.


/home/lesbrip/www/


Bonjour,

As-tu essayé /home/lesbrip/www/ comme chemin complet ?
Il apparaît à toutes les lignes du log.

Frtz2cat,
j'ai modifié mon script php comme cela
require( '/home/lesbrip/www/wp-load.php' );

if ( function_exists( 'rocket_clean_domain' ) ) {
rocket_clean_domain();
}

if ( function_exists( 'run_rocket_sitemap_preload' ) ) {
run_rocket_sitemap_preload();
}
La réponse d'OVH est toujours la même
2021-03-07T12:09:01+01:00 OVHCRON[16802/402157]: INFO ## OVH ## START - Executing CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) from /home/lesbrip as lesbrip
2021-03-07T12:09:02+01:00 OVHCRON[16802/402157]: INFO ## OVH ## END - CRON 402157 (/usr/local/php7.3/bin/php ./www/rocket-clean-domain.php) executed successfully in 1s

Pas de code erreur 0 et le script ne s'exécute pas.
Sais-tu comment faire pour modifier le script php pour dire si function exists tu exécutes sinon tu écris dans les logs j'ai pas trouvé

Merci d'avance.


Sais-tu comment faire pour modifier le script php


hé non, je n'ai plus aucune compétence en programmation. Je veux bien scripter un peu de bash mais ça s'arrête là.

Pour tester l'existence d'un fichier en php :


$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
echo "Le fichier $filename existe.";
} else {
echo "Le fichier $filename n'existe pas.";
}
?>

Bonjour Cm63,
En fait, il faut que je teste l'existence d'une fonction et non d'un fichier. Mais en m'inspirant de ta proposition et en cherchant un peu j'ai trouvé quelque chose. J'ai donc modifié mon script comme cela
// Load WordPress.
require( 'wp-load.php' );

// Clear cache.
if ( function_exists( 'rocket_clean_domain' ) ) {
rocket_clean_domain();
echo "clean domain ok";
}
else {
echo "rocket clean domain pas trouvé";
}

// Preload cache.
if ( function_exists( 'run_rocket_sitemap_preload' ) ) {
run_rocket_sitemap_preload();
echo "sitemap preload ok";
}
else {
echo "rocket sitemap preload pas trouvé";
}
J'ai toujours le même résultat. Pas de code erreur dans le log du cron et je n'ai, aucun résultat de mes échos. D'ailleurs, est-ce que c'est dans les logs du cron que je devrais voir un résultat ?