Tache cron correctement exécutée mais erreur dans le log
Jikoo
14/01/2016, 16h29
Ok Jean-Michel !
jmgrange
13/01/2016, 08h48
A la racine de mon hébergement j'ai un fichier ovhconfig, c'est le fichier standard d'origine. A la racine de l'hébergement je n'ai pas de fichier htacces mais un dans chaque répertoire accessible via internet www, et autres domaines et sous domaines..
Je rouvre mon ticket incident et vous tiendrai au courant de la suite.
Cordialement
Jean-Michel Grange
Jikoo
12/01/2016, 22h58
Hello jmgrange,
Si vous avez testé mon petit script sans le modifier, et que le cronjob s'éxecute bien mais retourne des erreurs , c'est qu'il y a peut être un problème sur votre cluster.
Ca me rappelle ce post:
(22)Invalid argument: Cannot fix environment variables for container, continue anyway. https://forum.ovh.com/showthread.php...-for-container
1) Vérifiez votre config concernant les crons, dans le manager
2) Vérifiez vos fichiers .htaccess et .ovhconfig
et si tout va bien de ce côté alors:
3) Ouvrez un ticket (déclarer un ticket incident chez OVH).
J'ai installé le script donné en exemple par Jikoo et je l'ai fait exécuté 4 fois hier soir.
Résultat : error reading the headers à chaque exécution et 2 fois le warning cannot fix environnement variable. Dans le log du cron à chauqe fois exit code 0.
[Mon Jan 11 19:38:01 2016] [error] [client 10.0.55.31] [host nicogholwp.cluster011.ovh.net] request failed: error reading the headers
[Mon Jan 11 19:38:02 2016] [warn] [client 127.0.0.1] [host nicogholwp.cluster011.ovh.net] (22)Invalid argument: Cannot fix environment variables for container, continue anyway.
[Mon Jan 11 20:38:01 2016] [error] [client 10.0.55.31] [host nicogholwp.cluster011.ovh.net] request failed: error reading the headers
[Mon Jan 11 21:54:02 2016] [error] [client 10.0.55.31] [host nicogholwp.cluster011.ovh.net] request failed: error reading the headers
[Mon Jan 11 22:54:02 2016] [error] [client 10.0.55.31] [host nicogholwp.cluster011.ovh.net] request failed: error reading the headers
[Mon Jan 11 22:54:03 2016] [warn] [client 127.0.0.1] [host nicogholwp.cluster011.ovh.net] (22)Invalid argument: Cannot fix environment variables for container, continue anyway.
On progresse.
A l'exécution de cette nuit, le warning "(22)Invalid argument: Cannot fix environment variables for container, continue anyway." a disparu. Parfait. (Peut-être avais je fait une erreur dans mon FTP samedi lors de la mise à jour)
Mais l'erreur request failed: error reading the headers est toujours présente dans mon log error
Cordialement
Jean-Michel Grange
Abazada
11/01/2016, 06h09
Petite parenthèse :
Envoyé par Jikoo
Je le répète: $_SERVER, $_GET, $_POST... ne fonctionnent pas dans l'environnement CRON (PHP CLI).
Ce n'est pas 100% vrai , (mais vrai pour $_GET et $_POST en ce qui concerne cette discussion)
Pour moi il n'y a pas de superglobales dans le code. Je en trouve rien qui commence par $_
Cordialement
Jean-Michel Grange
Merci pour le code.
Avez vous fait un grep sur tous les fichiers rattachés au cron pour voir s'il y a une superglobale ?
En d'autres termes, êtes vous bien sûr qu'il n'a pas de superglobale dans vos includes (config.php, cls_video.php, video_1.php, msglist' . $this->langaff . '.php')?
A part ça, avez vous testez mon petit script tout simple? https://forum.ovh.com/showthread.php...540#post619540
Avec ce script il ne doit y avoir aucune erreur renvoyée.
Cela permet de vous assurer que ce n'est pas un problème du côté d'OVH (ce qui pourrait être possible ^^)
$sql = sprintf("select fp.idfonction, fp.typefonction, fl.libcourt, fl.libelle from fonctionmaj as fp
inner join fonctionmaj as fm on fp.idfonction = fm.idfonctionparent
inner join fonctionmajlibelle as fl on fp.idfonction = fl.idfonction_fk
where fm.idfonction = %s and fl.idlang_fk = %s",$id_level, $this->langaff);
foreach ($db->query($sql) as $row) {
?>
$sql = sprintf("select fm.idfonction, fm.typefonction, fl.libcourt, fl.libelle from fonctionmaj as fm
inner join fonctionmajlibelle as fl on fm.idfonction = fl.idfonction_fk
inner join fonctionuser as fu on fm.idfonction = fu.idfonction_fk
inner join contact as c on fu.iduser_fk = c.iduser_fk where IFNULL(fm.idfonctionparent,0) = %s and fl.idlang_fk = %s and c.idcontact = %s and fm.dest = 'm'", $id_level, $this->langaff, $this->id);
foreach ($db->query($sql) as $row) {
$idkey = $idkey + 1;
switch( $row["typefonction"] ) {
case 'lstdevis':
$tab = 'devis';
break;
case 'lstfact':
$tab = 'facture';
break;
case 'majattach':
$tab = 'attachement';
break;
} ?>
Pour moi il n'y a pas de superglobales dans le code. Je en trouve rien qui commence par $_
Cordialement
Jean-Michel Grange
Jikoo
10/01/2016, 16h17
"Cannot fix environment variables for container"
Utilisez vous toujours la superglobale $_SERVER ?
Je le répète: $_SERVER, $_GET, $_POST... ne fonctionnent pas dans l'environnement CRON (PHP CLI). http://php.net/manual/fr/language.va...perglobals.php
jmgrange
10/01/2016, 14h57
Je viens de vérifier mon exécution de cette nuit après modification de mon code.
J'ai toujours les 2 mêmes erreurs
A l'exécution tout fonctionner bien juste une petite différence
Mon chemin qui était /homez.551/nicogholwp/gestcloture/ est devenu /home/nicogholwp/gestcloture/ mais le résultat de la tâche est le même.
Mon log error
request failed: error reading the headers
(22)Invalid argument: Cannot fix environment variables for container, continue anyway.
jmgrange
09/01/2016, 19h37
Merci pour l'info. Je modifie mon code.
Je vais lire attentivment vos différents posts sur le sujet.
Jikoo
09/01/2016, 18h09
Hello,
Vous avez la réponse dans le warning "Cannot fix environment variables for container''.
$_SERVER['PHP_SELF'] est une constante qui n'est pas viable en PHP CLI. Bref, ça ne fonctionne pas dans l'environnement CRON. Il ne faut donc pas l'utiliser.
Bonjour,
J'ai créé une tâche cron en php qui s’exécute tous les jours pour purger des fichiers et réorganiser des répertoires. Cette tâche s'exécute sans problème j'ai un exit 0 dans le log du cron.
J'écris des traces dans le log avec la fonction echo et tout est OK.
[2016-01-09 01:57:02] ## OVH ## START - 2016-01-09 01:57:02.866549 executing: /usr/local/php5.4/bin/php /homez.551/n.......wp/gxxxxxxe/trtvideos.php
[2016-01-09 01:57:02] Début /homez.551/n........wp/gxxxxxxxxe/
....
[2016-01-09 01:57:02]
[2016-01-09 01:57:02] ## OVH ## END - 2016-01-09 01:57:18.398221 exitcode: 0
(J'ai masqué les identifiants)
Par contre quand le regarde dans le log des erreurs j'ai une erreur
request failed: error reading the headers
et un warning
(22)Invalid argument: Cannot fix environment variables for container, continue anyway.
En cherchant sur internet ou les forums je ne trouve rien qui ne me donne une piste.
Quelqu'un a-t-il une piste ou un exemple simple de cron sans erreur ou warning.
Cordialement
Jean-Michel Grange