Résoudre les problèmes
Maximum execution time of X seconds exceeded in x.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
- Erreur PHP avec require_once, require, include_once ou include Interprétez le message complet lorsque PHP ne peut pas ouvrir un fichier et vérifiez le chemin, les...
- Activer le journal des erreurs PHP depuis cPanel Activez temporairement log_errors pour la version effective depuis le sélecteur PHP de cPanel, sans...
- Activer le journal des erreurs PHP depuis le fichier .htaccess Configurez .htaccess pour enregistrer temporairement les erreurs PHP en dehors de public_html, sans...
- Déboguer les erreurs dans les applications ou fichiers PHP Diagnostiquez une page blanche ou une erreur 500 en reproduisant l'échec et en consultant d'abord le...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.