Résoudre les problèmes

Maximum execution time of X seconds exceeded in x.php

Vérifié le 3 min de lecture errores php php

Le message :

Maximum execution time of X seconds exceeded in x.php

confirme que le processus a atteint la limite max_execution_time de PHP. Le fichier et la ligne indiquent où le minuteur a expiré, mais ne démontrent pas à eux seuls quel composant a consommé le temps.

Reproduisez l'opération exacte et consultez d'abord le journal de l'application et celui de PHP. S'il s'agit d'une requête lente reproductible, utilisez PHP X-Ray pour vérifier si le temps se concentre sur une requête SQL, un appel externe, une fonction ou un composant précis. Écartez aussi les boucles, les nouvelles tentatives et les volumes de données inattendus.

N'augmentez la limite que lorsque l'opération est légitime, bornée et a raisonnablement besoin de plus de temps. Vérifiez quelle version de PHP exécute le chemin, allez dans cPanel > Select PHP Version > Options et fixez max_execution_time à la plus petite valeur finie qui permet de terminer le test. La modification s'applique à tous les sites qui utilisent cette version.

N'augmentez pas la valeur progressivement jusqu'à ce que l'erreur disparaisse et ne la rendez pas illimitée. PHP utilise ce minuteur comme protection contre les scripts défectueux. En outre, le serveur web et d'autres composants peuvent appliquer leurs propres délais d'attente.

Après le test, rétablissez la valeur précédente. Si le processus épuise de nouveau une valeur raisonnable, corrigez l'opération ou le composant identifié au lieu de continuer à l'augmenter. Si vous soupçonnez une limitation de ressources, vérifiez les dépassements enregistrés de CPU, de mémoire, d'entrées, d'IO ou de processus : une consommation élevée sans dépassement de limite ne prouve pas que cette limite a interrompu ou ralenti la requête.

Temps PHP et temps total de la requête

Sur les systèmes Unix, max_execution_time ne mesure pas forcément tout le temps réel écoulé : l'attente de certaines opérations externes peut ne pas être comptée. Sous Windows, son comportement est différent. C'est pourquoi un temps total observé dans le navigateur ne se compare pas directement à cette limite. Consultez la définition de PHP.

Pour les importations ou les traitements longs, envisagez de découper le travail en lots ou de l'exécuter via une tâche CLI compatible, avec gestion des erreurs et suivi de la progression. Le CLI peut aussi avoir ses propres limites et n'évite pas les quotas de l'hébergement. Avant de relancer une opération interrompue, vérifiez quelles données ont déjà été enregistrées pour ne pas les dupliquer.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.