WordPress Fehler: Connection timed out

Jedes Mal wenn ich bei einer lokalen WordPress Installation das Dashboard aufrief, dauerte dies mehrere Sekunden und es erschien die Fehlermeldung WP HTTP Error: Resolving timed out after 3512 milliseconds. Nach einigem Suchen habe ich die betreffende Stelle in der wp-includes/class-http.php gefunden, die diesen Fehler ausgegeben hat.

Im nächsten Schritt habe ich dann mittels curl_getinfo( $handle ); das Ziel der Anfrage herausgefunden, https://api.wordpress.org/plugins/update-check/1.1/. Nach einigem herumprobieren habe ich versucht die selbe Abfrage im Terminal durchzuführen, also curl -vv --connect-timeout 3 https://api.wordpress.org/plugins/update-check/1.1/. Und siehe da, auch hier reichen 3s (wie von WordPress vorgegeben) nicht aus.

Durch eine Google Suche stieß ich auf eine cURL-Mailingliste wo unter anderem IPv6 als mögliche Ursache genannt wird. Also nochmal die cURL-Doku gewälzt und die Option --ipv4 gefunden. Mit dieser lässt sich die Abfrage problemlos ausführen. Die Ursache für den Fehler war, dass cURL jeweils 15s lang versucht hat per DNS über IPv6 den Hostnamen aufzulösen, was mangels funktionierendem IPv6 am Telekomiker Anschluss nicht ging. Bis cURL auf IPv4 zurückgefallen war, war das von WordPress definierte Timeout (3 Sekunden) abgelaufen.

Ein auf die schnelle eingefügtes curl_setopt( $handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); in die class-http.php löste den Fehler auch in WordPress. Da Core-Dateien zu verändern immer schlecht ist (Updates und so) gibt es praktischerweise vor der Ausführung des HTTP-Request einen Hook, mit dem sich das $handle manipulieren lässt. Daraus ergibt sich dieses (MU-)Plugin:

Dieser Beitrag wurde am von in Wordpress veröffentlicht. Schlagworte: , , , .

Über Jonathan Golder

Im Jahr 2010 hat mich das WordPress Fieber erfasst, als ich zum ersten mal ein kleineres Webprojekt realisiert habe. Seither ist WordPress zu einem schönen Hobby geworden. An Wordpress gefällt mir die große Freiheit sowie die Möglichkeit durch Pugins nahezu alles nachrüsten zu können. Außerdem beschäftige ich mich mit vielem was frei und quelloffen ist.