Table des matières:
Pourquoi l’erreur ‘cURL error 28: Connection timed out’ apparaît sur WordPress ?
L’erreur cURL error 28: Connection timed out est un problème fréquent rencontré par les utilisateurs de WordPress. Elle se produit généralement lors de l’exécution de requêtes HTTP via cURL, une bibliothèque utilisée pour les communications entre serveurs. Cette erreur indique que la connexion au serveur distant a pris trop de temps et a été interrompue. Dans cet article, nous allons explorer les causes principales et vous fournir des solutions détaillées pour corriger définitivement ce dysfonctionnement.
Les causes courantes de l’erreur cURL 28
Avant de chercher une solution, il est essentiel de comprendre ce qui déclenche cette erreur. Voici les raisons les plus fréquentes :
- Délai d’attente trop court : La valeur par défaut de
CURLOPT_TIMEOUTest insuffisante pour certaines requêtes. - Problèmes de connectivité réseau : Lenteur ou indisponibilité du serveur cible.
- Configuration du serveur : Paramètres PHP ou serveur web limitant les connexions sortantes.
- Extensions WordPress conflictuelles : Certains plugins ou thèmes effectuent des appels cURL mal optimisés.
- Pare-feu ou proxy : Blocage des connexions sortantes par le pare-feu ou un proxy.
Comment diagnostiquer l’erreur cURL error 28 ?
Pour identifier la source du problème, commencez par activer le mode débogage de WordPress. Ajoutez cette ligne dans votre fichier wp-config.php :
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Consultez ensuite le fichier wp-content/debug.log pour repérer les appels cURL qui échouent. Vous pouvez également utiliser des outils comme Query Monitor pour tracer les requêtes HTTP.
Solutions pour corriger l’erreur cURL 28 sur WordPress
1. Augmenter le délai d’attente cURL
La solution la plus simple est d’augmenter la valeur du timeout. Ajoutez ce code dans le fichier functions.php de votre thème :
add_action('http_request_args', 'increase_curl_timeout', 10, 1);
function increase_curl_timeout($r) {
$r['timeout'] = 30; // Valeur en secondes
return $r;
}
Ou si vous utilisez un plugin comme WP Remote, ajustez les paramètres directement dans l’interface.
2. Vérifier la connectivité réseau
Assurez-vous que votre serveur peut atteindre les destinations cibles. Utilisez la commande ping ou traceroute depuis votre terminal. Si vous êtes sur un hébergement mutualisé, contactez le support pour vérifier les restrictions réseau.
3. Optimiser les paramètres PHP
Modifiez les directives suivantes dans votre fichier php.ini ou via votre panneau d’hébergement :
max_execution_time = 300default_socket_timeout = 60allow_url_fopen = On
Redémarrez le serveur web après les modifications.
4. Désactiver les extensions problématiques
Désactivez temporairement tous vos plugins et passez à un thème par défaut (comme Twenty Twenty-Three). Si l’erreur disparaît, réactivez les extensions une par une pour identifier le coupable. Les plugins de mise en cache, de sauvegarde ou de connexion API sont souvent en cause.
5. Configurer un proxy ou un tunnel SSH
Si votre serveur est derrière un pare-feu strict, utilisez un proxy HTTP ou un tunnel SSH pour contourner les restrictions. Vous pouvez définir un proxy dans WordPress via le filtre http_api_curl :
add_action('http_api_curl', function($handle) {
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.exemple.com:8080');
curl_setopt($handle, CURLOPT_PROXYUSERPWD, 'user:password');
});
6. Mettre à jour WordPress et les extensions
Assurez-vous que votre installation WordPress, vos plugins et votre thème sont à jour. Les versions obsolètes peuvent contenir des bugs liés à cURL.
Prévenir l’erreur cURL 28 à l’avenir
Pour éviter que ce problème ne se reproduise, adoptez ces bonnes pratiques :
- Utilisez un service de monitoring pour détecter les lenteurs réseau.
- Optez pour un hébergement performant avec une bonne connectivité.
- Limitez le nombre d’appels API externes et mettez en cache leurs réponses.
- Testez régulièrement vos temps de réponse avec des outils comme Pingdom ou GTmetrix.
Erreurs similaires à connaître
D’autres erreurs cURL peuvent survenir, comme :
- cURL error 6 : Résolution DNS échouée.
- cURL error 7 : Échec de connexion au serveur.
- cURL error 28 : Timeout (l’objet de cet article).
- cURL error 35 : Problème de négociation SSL.
Chacune de ces erreurs a ses propres solutions, mais les bases restent les mêmes : vérifier la connectivité, les timeouts et la configuration serveur.
Conclusion
L’erreur cURL error 28: Connection timed out sur WordPress peut être frustrante, mais elle est généralement résoluble en suivant les étapes décrites dans ce guide. Augmentez les timeouts, vérifiez votre réseau, désactivez les extensions conflictuelles et optimisez la configuration de votre serveur. En appliquant ces correctifs, vous retrouverez un site fonctionnel et éviterez les interruptions de service. N’oubliez pas de surveiller régulièrement votre site pour prévenir toute récidive.
Photo by Brett Jordan on Unsplash
