Erreur PHP Maximum execution time exceeded : solution
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 :
- Connectez-vous à DirectAdmin
- Accédez à Advanced Features → Select PHP Version (ou PHP Selector)
- Cliquez sur "Switch to PHP Options
- Recherchez
max_execution_timeet réglez-le sur 300 - 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_DEBUGpour 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ètre | Par défaut | Fonction |
|---|---|---|
| max_execution_time | 30 | Temps d'exécution maximal par script (secondes) |
| max_input_time | 60 | Temps maximal pour l'analyse des données d'entrée (secondes) |
| memory_limit | 128M | Utilisation maximale de la mémoire par script |
| upload_max_filesize | 2M | Taille maximale d'un fichier envoyé |
| post_max_size | 8M | Taille 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.
0 sur 0 ont trouvé cet article utile