Prima di verdere come aumentare timeout cURL, cerchiamo di capire cosa è cURL.
cURL è un software gratuito open source, sviluppato e migliorato in maniera costante da una community che include migliaia di collaboratori.
Il comando cURL è un comando estremamente utile e versatile. Si tratta di una delle opzioni più gettonate nell’ambito della programmazione, poiché con il suo utilizzo è possibile svolgere una serie di operazioni, come, ad esempio, effettuare richieste HTTP.
In particolare evita allo sviluppatore di dover utilizzare più linguaggi di programmazione, rendendo disponibile in un unico framework una serie funzioni combinate tra linguaggi di markup (HTML o JS) e computazionali (Java, C#, C++…).
cUrl consiste in un package e mette a disposizione tool e command line per operare sul NET usando sintassi URL.
Supporta molti protocolli, come HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, DICT, FILE, FTP, FTPS, Gopher, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet e TFTP.
Il sito ufficiale http://curl.haxx.se/ dove è possibile scaricare i pacchetti.
Inutile dire che gira su praticamente qualsiasi piattaforma.
Alcuni esempi:
per scaricare un file :
$ curl http://www.spaceclick.com
per salvare:
$ curl http://www.spaceclick.com > sc-com.html
e molto altro.
Capita quindi che molti sviluppatori lo utilizzano per scaricare pacchetti, aggiornare temi, installare estensioni.
Uno dei problemi che si verifica spesso è che alcune operazioni hanno bisogno di un tempo un pò più lungo prima di eseguire le operazioni, ecco quindi che ci troviamo di fronte ad errori e veniamo bloccati con messaggi del tipo:
cURL error 28: Operation timed out after 5000 milliseconds with 0 bytes received
In questo caso è necessario aumentare timeout cUR in modo da consentire la completa esecuzione dell’operazione.
Questa operazione può essere fatta dal server tramite le impostazioni nel file php.ini ma a volte potrebbe non andare a buon fine, come facciamo in questo caso?
Aumentare timeout cURL è l’unica soluzione per risolvere questo fastidioso problema, ecco quindi che basta andare sulla cartella wp-includes e modificare il file http.php aggiungendo alla fine queste righe di codice:
add_filter(‘http_request_args’, ‘bal_http_request_args’, 100, 1);
function bal_http_request_args($r) //called on line 237
{
$r[‘timeout’] = 15;
return $r;
}
add_action(‘http_api_curl’, ‘bal_http_api_curl’, 100, 1);
function bal_http_api_curl($handle) //called on line 1315
{
curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 15 );
curl_setopt( $handle, CURLOPT_TIMEOUT, 15 );
}
A questo punto basta riprovare ad installare ed il problema non si verificherà più.
Seguiteci e contattateci per qualsiasi informazione utilizzando cliccando qui.