cURL-Timeout für WordPress erhöhen

Das WordPress-Management-Dashboard MainWP hat sich über den standardmäßig eingestellten cURL-Timeout von 60 Sekunden „beschwert“ und angemerkt, dass dieser auf einen Wert von mindestens 300 gesetzt werden sollte.

Dies lässt sich schnell und einfach über folgende Zeile in der wp-config.php erledigen:

ini_set( 'default_socket_timeout', 300 );

Voraussetzung ist natürlich, dass der Webserver das Überschreiben des entsprechenden Timeouts zulässt. Sollte die Änderung nicht direkt greifen, muss ggf. der PHP-OPcache geleert werden.

Sollte der Weg per ini_set nicht funktionieren, kann man alternativ entsprechende WordPress-Hooks nutzen, indem man folgenden Code beispielsweise der functions.php hinzufügt:

add_filter("http_request_args", "sw_http_request_args", 100, 1);
function sw_http_request_args($request)
{
    $request["timeout"] = 300;
    return $request;
}

add_action("http_api_curl", "sw_http_api_curl", 100, 1);
function sw_http_api_curl($handle)
{
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 300);
    curl_setopt($handle, CURLOPT_TIMEOUT, 300);
}

Noch ein kurzer Hinweis: 300 Sekunden ist ein sehr hoher Wert für einen Timeout. Man sollte sich bewusst sein, was man macht, bevor man einen Timeout auf 300 Sekunden setzt. Sofern nicht unbedingt notwendig würde ich einen geringeren Timeout empfehlen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.