Lorsque vous travaillez avec cURL pour envoyer des requêtes HTTP, vous pouvez être confronté à l’erreur cURL 28 : la connexion a expiré après 10 001 millisecondes. Cette erreur indique que cURL n’a pas reçu de réponse du serveur dans le délai imparti, ce qui peut entraîner des problèmes d’exécution dans votre application.
Ce problème est courant lorsque vous interagissez avec des API, des serveurs distants ou des sites web qui prennent trop de temps à répondre. Heureusement, il existe plusieurs solutions pour diagnostiquer et résoudre cette erreur.
Cette erreur peut affecter :
- Les mises à jour de WordPress, des thèmes et des plugins
- Les connexions aux API tierces (comme PayPal, Stripe, ou Google reCAPTCHA)
- Les sauvegardes et migrations de site
- Ralentir votre site
Dans cet article, nous allons voir ce qu’est cURL, les causes de l’erreur cURL 28, et comment la corriger, que ce soit dans un environnement de développement ou sous WordPress.
Qu’est-ce que cURL dans WordPress ?
cURL (Client URL Library) est une bibliothèque utilisée par WordPress et d’autres applications web pour effectuer des requêtes HTTP. Il est souvent utilisé pour :
- Récupérer du contenu à partir d’API externes (comme l’API REST de WordPress, WooCommerce, ou des services tiers).
- Vérifier les mises à jour des thèmes et plugins.
- Assurer le bon fonctionnement de certaines fonctionnalités (vérification des connexions SSL, paiements WooCommerce, etc.).
Si cURL rencontre un problème, certaines fonctionnalités essentielles de WordPress peuvent être affectées.
Comprendre l’erreur cURL 28
cURL est un outil en ligne de commande et une bibliothèque utilisée pour transférer des données avec des URL. L’erreur 28 se produit lorsqu’une requête prend trop de temps à être exécutée et que le délai d’expiration défini est dépassé. Cette erreur peut apparaître sous la forme suivante :
curl: (28) Connection timed out after X milliseconds
Cette erreur peut survenir pour plusieurs raisons, notamment :
- Un délai d’attente trop court défini dans la requête cURL.
- Un problème de connexion réseau.
- Un serveur distant surchargé ou non réactif.
- Des restrictions au niveau du pare-feu ou du fournisseur d’accès Internet.
Quelles sont les causes de l’erreur cURL 28 dans WordPress ?
Voici les principales raisons pour lesquelles cette erreur se produit :
Cause | Explication |
---|---|
🔴 Serveur surchargé ou lent | Si votre hébergement est trop lent ou limité, les requêtes cURL prennent trop de temps. |
🔴 Pare-feu ou sécurité excessive | Certains plugins de sécurité (Wordfence, Sucuri) ou pare-feux bloquent les connexions sortantes. |
🔴 Problèmes DNS | Si votre serveur ne peut pas résoudre les noms de domaine rapidement, cURL attend trop longtemps. |
🔴 Certificat SSL invalide | Si le certificat SSL du serveur cible est invalide, cURL peut bloquer la requête. |
🔴 Version obsolète de PHP ou cURL | Une version trop ancienne de cURL peut ne pas fonctionner correctement. |
🔴 Trop de requêtes envoyées simultanément | Si votre serveur envoie trop de requêtes cURL, certaines peuvent échouer. |
Comment corriger l’erreur cURL 28 ?
1. Augmenter le délai d’attente (timeout)
Parfois, le délai d’attente défini pour une requête cURL est trop court. Vous pouvez augmenter cette durée pour éviter que la requête ne se termine trop rapidement. Par exemple, si vous utilisez cURL en ligne de commande, vous pouvez modifier le délai avec cette commande :
curl --connect-timeout 30 --max-time 60 http://exemple.com
En PHP, vous pouvez configurer le timeout comme suit :
$ch = curl_init('http://exemple.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$response = curl_exec($ch);
curl_close($ch);
Cela donnera à votre requête plus de temps pour s’exécuter et réduira les risques d’expiration.
2. Vérifier la connexion réseau
Si votre connexion Internet est instable ou lente, cela peut causer des erreurs cURL 28. Vous pouvez vérifier votre connexion en exécutant une commande ping
:
ping exemple.com
Si vous constatez un temps de réponse élevé ou des pertes de paquets, il est recommandé de redémarrer votre routeur ou de contacter votre fournisseur d’accès Internet.
3. Désactiver temporairement le pare-feu ou l’antivirus
Certains pare-feu ou logiciels antivirus peuvent bloquer les connexions sortantes. Pour tester si c’est la cause du problème, essayez de les désactiver temporairement et relancez votre requête cURL.
Sous Linux, vous pouvez tester cela en exécutant :
sudo iptables -F
Sur Windows, vous pouvez désactiver le pare-feu via les paramètres de sécurité.
4. Désactiver temporairement le pare-feu WordPress
Si vous utilisez WordPress, un pare-feu installé via un plugin peut bloquer les connexions cURL. Vous pouvez temporairement désactiver ce plugin pour voir si l’erreur disparaît.
- Connectez-vous à votre tableau de bord WordPress.
- Allez dans Extensions > Extensions installées.
- Désactivez tout plugin de sécurité ou de pare-feu.
- Testez votre requête cURL.
5. Désactiver tous les plugins WordPress
Parfois, un plugin WordPress peut interférer avec les requêtes cURL. Vous pouvez désactiver tous les plugins et les réactiver un par un pour identifier le coupable.
- Connectez-vous à WordPress.
- Allez dans Extensions > Extensions installées.
- Cliquez sur Désactiver pour tous les plugins.
- Testez votre connexion cURL.
- Réactivez les plugins un à un pour voir lequel cause le problème.
6. Vérifier la mise à jour du serveur d’hébergement
Un serveur obsolète peut causer des erreurs cURL. Vérifiez que votre serveur utilise les versions les plus récentes de PHP, cURL et OpenSSL. Vous pouvez voir la version de PHP avec :
echo phpinfo();
Si votre version est trop ancienne, demandez à votre hébergeur de la mettre à jour.
7. Résoudre les problèmes SSL
Si votre site fonctionne avec HTTPS, mais que certaines requêtes sont faites en HTTP, cela peut causer une erreur cURL. Vérifiez que toutes vos ressources utilisent HTTPS.
8. Augmenter les limites de timeout PHP
Si votre serveur a un faible timeout PHP, vous pouvez l’augmenter en modifiant le fichier php.ini
:
max_execution_time = 300
Ou en ajoutant cette ligne à .htaccess
:
php_value max_execution_time 300
9. Mettre à jour un plugin manuellement
Si la mise à jour automatique d’un plugin échoue à cause d’une erreur cURL, vous pouvez le mettre à jour manuellement :
- Téléchargez la dernière version du plugin depuis le site officiel.
- Décompressez le fichier ZIP.
- Connectez-vous à votre serveur via FTP.
- Remplacez les fichiers du plugin dans le dossier
/wp-content/plugins/
.
10. Vérifier les conflits entre plugins et thèmes
Un plugin ou un thème mal codé peut provoquer des erreurs cURL. Pour tester cela :
- Activez un thème par défaut comme Twenty Twenty-One.
- Désactivez tous les plugins.
- Testez votre connexion cURL.
- Réactivez vos plugins un à un pour voir lequel pose problème.
11. Contacter votre hébergeur
Si vous ne trouvez pas la source du problème, contactez votre hébergeur. Expliquez-leur votre situation et demandez-leur de vérifier s’il y a des restrictions sur leur serveur.
12. Obtenez l’aide d’un professionnel avec les services de maintenance WordPress
Vous en avez assez de passer autant de temps à corriger les erreurs sur votre site WordPress ? Ne préféreriez-vous pas consacrer ce temps à la croissance de votre entreprise ?
Il est peut-être temps d’envisager des services de maintenance WordPress professionnels.
Nos services de maintenance et d’assistance Sitwis peuvent s’occuper de tout, des mises à jour et sauvegardes automatiques au dépannage des erreurs. Vous aurez également accès à une assistance experte 24h/24 et 7j/7 si les choses tournent mal sur votre site Web.
Conclusion
L’erreur cURL 28 : la connexion a expiré après 10 001 millisecondes est souvent due à un délai d’attente insuffisant, un problème serveur ou une mauvaise configuration réseau. En appliquant les solutions ci-dessus, vous pourrez identifier et corriger la cause du problème.
En résumé :
✅ Augmentez le timeout dans votre requête cURL.
✅ Vérifiez la disponibilité du serveur avant d’envoyer des requêtes.
✅ Optimisez votre connexion réseau (DNS, pare-feu, proxy).
✅ Limitez la charge des requêtes et utilisez des requêtes parallèles si nécessaire.
Si l’erreur persiste malgré tout, envisagez de contacter l’hébergeur du serveur ou d’analyser les performances de votre code.
Avez-vous déjà rencontré cette erreur ? Partagez vos solutions et expériences en commentaire ! 🚀
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.