PHP映像清除超过了最大执行时间

PHP映像清除超过了最大执行时间,php,curl,Php,Curl,我正在清理LAMP堆栈上的一个旧PHP应用程序。 一切似乎都正常工作,但请求库中的清除函数每次都会超时。代码接收一个图像URI 我在30秒后出现超时错误,如下所示: 致命错误:第133行上的//Tools/Request.php超过了30秒的最大执行时间,这是if(curl\u multi\u select($mh)!=-1{的第行。 图像URI没有问题。我也尝试将执行时间最大化为360秒,但仍然失败。可能是无限循环?如果是,为什么 有人知道吗 public static function pu

我正在清理LAMP堆栈上的一个旧PHP应用程序。 一切似乎都正常工作,但请求库中的清除函数每次都会超时。代码接收一个图像URI

我在30秒后出现超时错误,如下所示:
致命错误:第133行
上的//Tools/Request.php超过了30秒的最大执行时间,这是if(curl\u multi\u select($mh)!=-1{的第
行。
图像URI没有问题。我也尝试将执行时间最大化为360秒,但仍然失败。可能是无限循环?如果是,为什么

有人知道吗

public static function purge($uri = '') {
    if ($uri == '') {
        throw new Exception('Uri is not set');
    }

    $chVarnish01 = curl_init($uri);
    $chVarnish02 = curl_init($uri);
    $chVarnish03 = curl_init($uri);

    curl_setopt_array($chVarnish01, array(CURLOPT_CUSTOMREQUEST => 'PURGE', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 5, CURLOPT_HTTPHEADER => array('varnish: 01')));
    curl_setopt_array($chVarnish02, array(CURLOPT_CUSTOMREQUEST => 'PURGE', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 5, CURLOPT_HTTPHEADER => array('varnish: 02')));
    curl_setopt_array($chVarnish03, array(CURLOPT_CUSTOMREQUEST => 'PURGE', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 5, CURLOPT_HTTPHEADER => array('varnish: 03')));

    $mh = curl_multi_init();
    curl_multi_add_handle($mh, $chVarnish01);
    curl_multi_add_handle($mh, $chVarnish02);
    curl_multi_add_handle($mh, $chVarnish03);

    $active = null;
    do {
        $mrc = curl_multi_exec($mh, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);

    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($mh) != -1) {
            do {
                $mrc = curl_multi_exec($mh, $active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }

    curl_multi_remove_handle($mh, $chVarnish01);
    curl_multi_remove_handle($mh, $chVarnish02);
    curl_multi_remove_handle($mh, $chVarnish03);
    curl_multi_close($mh);

    return true;
}

一些服务器只响应网络浏览器的请求,以消除流量盗窃。尝试使用curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:36.0)Gecko/20100101 Firefox/36.0')在curl选项中添加一个带有伪造用户代理的头;例如。至少这帮我解决了在一个小项目中从URL获取Favicon时遇到的类似问题。谢谢你的建议,但它不起作用:(。