2010-01-08 5 views
2

Quelqu'un a-t-il eu un problème avec php 5.2.12 ayant beaucoup d'erreur "Durée d'exécution maximale" lors de la tentative d'inclusion de fichiers()?php 5.2.12 Temps d'exécution maximal lors de l'utilisation de include()

Je n'arrive pas à trouver le bogue dans php.net, mais il nous donne systématiquement cette erreur sur de nombreux scripts.

Quelqu'un peut recommander des solutions?

Le même script fonctionne sur quelques autres serveurs avec PHP 5.2 sans aucun problème. Donc juste pour vous faire savoir que ce n'est pas un problème de script.

+2

Etes-vous sûr que ce n'est pas correct? Que vous n'effectuez pas de longues tâches en mode immédiat au lieu de définir des fonctions? –

Répondre

3

Il est beaucoup plus probable que ce soit un problème avec votre code plutôt qu'avec une version spécifique de PHP. PHP par défaut a un temps d'exécution maximum de 30 secondes, que vous pouvez modifier en appelant set_time_limit() ou en ajustant vos paramètres php.ini.

Si vous ne faites pas quelque chose que vous attendez longtemps, la cause de cette erreur est généralement une boucle infinie quelque part dans votre code. Je vais lancer un debug_print_backtrace() et quelques appels exit() dans des emplacements clés et essayer de trouver quel fichier vous donne du chagrin, puis regarder de plus près. Vous êtes peut-être coincé dans une hiérarchie infinie include(), auquel cas vous devriez utiliser include_once() pour tous vos fichiers de bibliothèque de classes et de fonctions.

1

Je vérifierais pour m'assurer que la même inclusion ne soit pas demandée de temps en temps d'une façon ou d'une autre. Vous pouvez essayer include_once() juste pour voir si cela change les choses pour vous. Ce n'est pas une solution tant que c'est une solution temporaire potentielle. Vous devriez savoir ce qui cause cela si en effet il est appelé encore et encore.

0

Si vous avez une configuration xdebug et un IDE qui supporte le débogage, ce serait un excellent moyen de creuser dans le code. Sinon, pouvez-vous essayer de mettre des instructions de sortie dans la première ligne du fichier inclus et dans la ligne PROIR pour appeler l'include. Voir ce qui se passe ...