Votre site web affiche le message d'erreur « Maximum execution time of 30 seconds exceeded » ou votre page charge indéfiniment sans résultat. Il s'agit d'une erreur de timeout PHP : votre script dure plus longtemps que le temps d'exécution maximal autorisé. Ce guide explique ce que cela signifie et comment résoudre le problème.

Qu'est-ce qu'une erreur de timeout PHP ?

PHP dispose d'une limite de temps intégrée pour l'exécution des scripts. Par défaut, elle est de 30 secondes (parfois 60 ou 120 secondes, selon votre configuration d'hébergement). Si un script dure plus longtemps, PHP arrête l'exécution et affiche le message d'erreur suivant :

Fatal error: Maximum execution time of 30 seconds exceeded in /path/to/file.php on line 123

Cette limite de temps sert de protection : elle empêche des scripts bloqués de surcharger tout votre serveur. Mais pour des opérations légitimes (gros imports, migrations de base de données, calculs lourds), la limite par défaut peut être trop basse.

Causes fréquentes :

  • Requêtes de base de données volumineuses: des requêtes qui traitent des milliers de lignes
  • Envois de fichiers: envoyer ou traiter des fichiers volumineux
  • Opérations d'extensions ou de thèmes: mises à jour, imports ou exports qui durent longtemps
  • Appels d'API externes: connexions à des services externes lents
  • Boucles infinies: des erreurs de programmation qui bloquent un script
  • Traitement d'images lourd: redimensionner ou convertir de grandes images

Résoudre un timeout PHP en tant que propriétaire du site

Suivez les étapes ci-dessous pour augmenter le timeout PHP ou résoudre le problème sous-jacent.

1. Augmentez max_execution_time via php.ini

La manière la plus directe d'augmenter le timeout passe par le fichier de configuration php.ini :

max_execution_time = 300

Cela porte la limite à 300 secondes (5 minutes). Sur un hébergement mutualisé, vous pouvez souvent créer un fichier .user.ini à la racine de votre site web avec le même paramètre.

2. Augmentez la limite via wp-config.php

Avec WordPress, vous pouvez aussi définir la limite de temps dans wp-config.php, avec cette ligne :

set_time_limit(300);

Ou ajoutez ce paramètre PHP :

ini_set('max_execution_time', 300);

Placez cette ligne au-dessus de la ligne /* That's all, stop editing!*/ dans votre wp-config.php.

3. Augmentez via le PHP Selector de DirectAdmin

Sur un hébergement DirectAdmin, vous pouvez modifier les paramètres PHP via le panneau de contrôle :

  1. Connectez-vous à DirectAdmin
  2. Accédez à Advanced Features → Select PHP Version (ou PHP Selector)
  3. Cliquez sur "Switch to PHP Options
  4. Recherchez max_execution_time et réglez-le sur 300
  5. Cliquez sur "Save

4. Augmentez via .htaccess

Sur les serveurs Apache, vous pouvez aussi modifier le paramètre via .htaccess :

php_value max_execution_time 300

Attention : cela ne fonctionne qu'avec mod_php, pas avec PHP-FPM ni FastCGI. Avec PHP-FPM, vous devez modifier le php.ini ou la configuration du pool.

5. Optimisez le problème sous-jacent

Augmenter la limite de temps est un contournement. La vraie solution consiste souvent à optimiser le script qui dure trop longtemps :

  • Optimiser les requêtes de base de données: ajoutez des index, limitez le nombre de résultats avec LIMIT, utilisez la pagination
  • Traitement par lots: traitez les grands jeux de données par petits lots plutôt que tout en une fois
  • Activer la mise en cache: stockez en cache les résultats des calculs lourds (Redis, Memcached)
  • Utiliser des tâches en arrière-plan: déplacez les opérations lourdes vers une file d'attente ou une tâche cron
  • Accélérer les appels externes: définissez des timeouts pour les appels d'API et utilisez un traitement asynchrone

6. Vérifiez la présence de boucles infinies

Si le timeout revient sans cesse, même après avoir augmenté la limite, il peut s'agir d'une erreur de programmation :

  • Activez WP_DEBUG pour trouver la ligne exacte
  • Vérifiez s'il existe des boucles while/for sans condition de sortie correcte
  • Vérifiez que les appels de fonctions récursives ne manquent pas d'un cas de base
  • Désactivez les extensions installées récemment pour trouver la coupable

Paramètres PHP associés

Outre max_execution_time, d'autres paramètres PHP sont liés au temps :

ParamètrePar défautFonction
max_execution_time30Temps d'exécution maximal par script (secondes)
max_input_time60Temps maximal pour l'analyse des données d'entrée (secondes)
memory_limit128MUtilisation maximale de la mémoire par script
upload_max_filesize2MTaille maximale d'un fichier envoyé
post_max_size8MTaille maximale des données POST

Avec un VPS, vous avez un contrôle total sur tous ces paramètres. Sur un hébergement mutualisé, certains paramètres sont limités par votre hébergeur.

Questions fréquentes sur les erreurs de timeout PHP

Que signifie « Maximum execution time of 30 seconds exceeded » ?

Ce message d'erreur signifie qu'un script PHP a tourné plus de 30 secondes et a été interrompu par le serveur. La limite de 30 secondes est la valeur par défaut du paramètre PHP max_execution_time. Vous pouvez augmenter cette limite via php.ini, wp-config.php ou le panneau de contrôle de votre offre d'hébergement.

Est-il sûr d'augmenter max_execution_time ?

Oui, une valeur de 120 à 300 secondes est sûre pour la plupart des sites web. Ne supprimez toutefois pas la limite (0 = aucune limite), car des scripts bloqués pourraient alors surcharger tout votre serveur. Une valeur de 300 secondes (5 minutes) offre un bon équilibre entre fonctionnalité et protection.

Pourquoi ai-je un timeout PHP lors des mises à jour WordPress ?

Les mises à jour d'extensions et de thèmes WordPress doivent télécharger, décompresser et installer des fichiers. Avec une connexion internet lente, de grosses mises à jour ou des serveurs surchargés, cela peut durer plus longtemps que le timeout ne le permet. Augmentez temporairement max_execution_time à 300 secondes et relancez la mise à jour. Envisagez aussi de passer à un hébergement web plus rapide si cela se produit régulièrement.

Des timeouts PHP à cause d'un hébergement lent ? Consultez nos offres d'hébergement web avec LiteSpeed et SSD NVMe pour l'exécution PHP la plus rapide. Ou choisissez un VPS avec un contrôle total sur tous les paramètres PHP.