Comment éviter qu'apache ne re-exécute un script php ?

Tags: #<Tag:0x00007f63f33fbb10>

certains de mes scripts php se re-exécutent !
Il semble que ceci soit du à un temps d’exécution dépassant 60 secondes.
(en effet, sur un autre ordinateur le même programme se déroule normalement)

où se trouve ce paramètre d’apache qui gère ce comportement ?

Merci.

Jamais entendu dire qu’un timeout relançait une tâche, au contraire, ça la coupe.

Tu parles de quoi ? Un apache différent ? Un serveur avec plus de mémoire ?

Pourrais tu être plus précis quand au type de script, à la raison qui te fait dire que c’est relancé, etc ?

  1. c’est un script php ordinaire, lancé par un formulaire html.
    le script s’exécute une fois, puis une deuxième fois sans raison apparente, c’est très étrange.
    J’ai trouvé cela sur le net :
    https://stackoverflow.com/questions/13261327/php-script-executes-twice-when-longer-than-60-seconds

  2. le deuxième ordinateur est un serveur mutualisé OVH où la version d’apache est P HP Version 5.6.31 (chez moi : PHP Version 5.4.45-0+deb7u2)

OK.
Ma question est plus précisément: à quoi le vois tu chez toi ?
Dans l’exemple que tu cites, le type constate que son script s’execute 2 fois >et< il y a la trace de 2 requêtes dans son access.log.
Si c’est pareil chez toi avec deux accés à 1min d’écart, ça veut dire que ce n’est pas php qui execute deux fois le script, mais qu’il y a quelque chose qui fait faire deux fois la requête au client (ça le fait avec tous les navigateurs d’ailleurs ?).

Un test: tu reprends le test.php du gars en faisant des print à la place des appels error_log, et si je ne me trompe pas, tu devrais avoir à l’affichage une seule execution dans la page affichée, malgré la trace des deux executions.

Alors par contre, qu’est ce qui cause ça ?

Bonne question : c’est Firefox qui produit cela avec localhost, mais pas avec le serveur sur Ovh
avec Opera c’est correct avec localhost

j’ai mis les paramètres de php.ini d’Ovh chez moi : cela ne change rien.

Il y a un truc avec firefox: https://support.mozilla.org/en-US/questions/922783

Toujours aucune idée sur comment régler le probléme, mais tu peux peut être le contourner:
tu calcule une signature du client (ip+ua ?) à chaque appel du script, et tu n’executesle script que si le client ne l’a jamais exécuté.
Tu peux même “cacher” le résultat de ton script dans un fichier nommé avec la signature du client, et tu resert le contenu du cache si c’est le même client.

J’ai trouvé une solution que je ne comprends pas : il suffit d’enlever les commentaires des pages html !!!
Mais alors pourquoi le même Firefox se comporte-t-il normalement si le html est généré depuis un serveur Ovh ?
Le net est rempli d’exemples très divers de ce comportement bizarre de Firefox.

Merci pour votre aide.