PHP Timeout : max_execution_time

Configurer les timeouts PHP correctement.

PHP a une limite d'exécution par défaut de 30 secondes. Au-delà, le script est tué. Pour les opérations longues (imports, exports, génération de PDF), il faut ajuster cette limite.

SymptĂ´mes

  • Erreur "Maximum execution time exceeded"
  • Page blanche sur les opĂ©rations longues
  • Imports/exports qui Ă©chouent
  • Timeout sans message d'erreur visible

Causes Fréquentes

  • max_execution_time trop court : La valeur par dĂ©faut (30s) est insuffisante.
  • Script mal optimisĂ© : Le code fait trop d'opĂ©rations ou des boucles inefficaces.
  • DĂ©pendance externe lente : API tierce ou BDD qui rĂ©pond lentement.

Étapes de Diagnostic

  1. Vérifiez les logs PHP pour "Maximum execution time"
  2. Identifiez le script concerné
  3. Mesurez le temps d'exécution avec microtime()
  4. Profilez le code pour trouver le goulot

Automatiser avec MoniTao

MoniTao détecte les timeouts PHP :

  • Surveillance des endpoints avec timeout configurable
  • Alertes sur les erreurs 500 (timeout fatal)
  • Heartbeat pour les scripts en background

Bonnes Pratiques

  • Mettez les opĂ©rations longues en background (queue)
  • Utilisez set_time_limit() pour des scripts spĂ©cifiques
  • Alignez les timeouts PHP avec Nginx/Apache
  • ImplĂ©mentez des progress indicators pour l'UX

Questions Fréquentes

Comment augmenter max_execution_time ?

Dans php.ini, via .htaccess, ou set_time_limit() dans le code.

Peut-on mettre 0 (infini) ?

Techniquement oui, mais c'est risqué. Préférez une valeur élevée (300s).

set_time_limit reset-t-il le timer ?

Oui, appeler set_time_limit(30) repart de zéro.

Comment surveiller les scripts longs ?

Utilisez le heartbeat MoniTao : le script ping avant et après.

PrĂŞt Ă  dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.