cURL在调用curl_exec时挂起服务器



在本地环境(OSX Mavericks, apache服务器)上进行测试,每次执行curl函数时都会挂起服务器。

有罪的代码行是

$result = curl_exec($ch);

这样初始化:

   //initialize and setup the curl handler
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $this->_api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, count($params));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    //execute the request
    $result = curl_exec($ch);

在执行时(已经解析了所有变量),页面只是无限期挂起。删除curl_exec命令"修复"挂起问题。

PHP 5.6.11

curl 7.38.0 (x86_64-apple-darwin12.5.0)

OpenSSL/0.9.8

Apache/2.2.29 (Unix)

这个答案(修复curl_exec在Windows 8 apache中挂起)表明多个会话是问题…我已经尝试在调用curl_exec之前终止会话,但是没有任何区别。

我没有办法了!我没有调试信息,因为服务器挂起,没有返回任何东西。如果有人有任何想法,我可以尝试,我真的很感激!谢谢。

问题在于使用OSX内置的服务器功能。切换到mac专用的本地web服务应用程序MAMP解决了这个问题。

最新更新