Problématique
Votre site web est à jour, fonctionnel, tout va bien dans le meilleur des mondes.
Mais un matin, vous rencontrez l’erreur suivante :
cURL error 28: Operation timed out
… avec différentes informations, liée au délai notamment.
D'où provient cette erreur ?
Il se peut que le problème ne vienne pas forcément de votre installation WordPress, mais du serveur qui héberge votre site.
Nous allons ci-après lister quelques causes possibles :
Côté serveur :
- Votre serveur n’est pas à jour côté PHP et ses librairies
- Vous rencontrez en dépassement de mémoire
- Votre cURL n’arrive pas à joindre l’URL de destination
- Vous disposez d’un parefeu serveur bloquant des requêtes entrantes / sortantes
Côté WordPress :
- Vous utilisez un plugin spécifique avec cURL ayant un time out réglé trop faiblement
- Vous avez installé ou mis à jour un plugin de sécurité pouvant occasionner un dysfonctionnement
Que faire pour résoudre ce problème ?
Nous allons essayer de voir point par point quelles solutions sont réalisables selon les causes énoncées ci-avant.
Côté serveur :
- Vérifiez sur votre hébergement la version de PHP. Il convient d’avoir une version PHP la plus stable et la plus à jour possible, en adéquation avec votre installation WordPress (qui naturellement se doit d’être à jour également). Vous devriez, selon l’hébergeur, pouvoir faire monter votre version de PHP rapidement et manuellement. Si non, contactez votre hébergeur afin de voir avec lui s’il y a besoin d’effectuer une montée de version de PHP
- Vous rencontrez un dépassement de mémoire : nous avons déjà évoqué ce problème dans un autre article sur notre site, il existe quelques réglages pouvant être à corriger si besoin :
memory_limit
max_execution_time
max_input_time
ou encore, selon l’erreur que vous aurez identifiée :
upload_max_size
post_max_size
upload_max_filesize
- Si votre cURL n’arrive pas à joindre l’URL de destination, il faut alors contrôler plusieurs points : déjà, la cible : est-elle joignable, répond-elle correctement ? Si vous passez par un nom de domaine, le serveur DNS répond-il avec la bonne adresse IP ? Si tout est correcte, il faudra alors contrôler si vous n’avez pas les éléments que nous allons voir dans le point suivant
- Un parefeu bloque certaines requêtes : cela peut arriver, une IP bannie, des règles strictes filtrants les requêtes entrantes et/ou sortantes… votre cURL peut échouer si des mesures de sécurité trop restrictives sont en place. Il vous faudra certainement voir avec votre hébergeur si tout est correct de son côté pour à la fois assurer la sécurité de votre hébergement, tout en autorisant votre cURL à fonctionner. Notez que le même problème peut dans certains cas se trouver du côté de votre destination.
Côté WordPress :
- Vous utilisez un plugin spécifique avec cURL ayant un time out réglé trop faiblement : certains plugins proposent de régler le « timeout », la durée maximale autorisée d’un script par exemple. Si cette durée est trop faible, il se peut que la requête initiée par cURL soit trop longue et soit donc interrompue du fait du dépassement du délai autorisé. Donc si vous passez par un plugin, la première des choses sera de contrôler s’il y a un réglage à ce sujet
- Vous avez installé ou mis à jour un plugin de sécurité pouvant occasionner un dysfonctionnement : certains plugins de sécurité, s’ils sont mal (ou trop bien) réglés peuvent empêcher cURL de fonctionner correctement. Contrôlez vos réglages de sécurité ou désactivez temporairement votre plugin de sécurité pour voir si c’est éventuellement lui qui bloque vos requêtes