【发布时间】:2015-10-25 21:12:51
【问题描述】:
在本地环境(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) libcurl/7.38.0
OpenSSL/0.9.8
Apache/2.2.29 (Unix)
这个答案 (fixing curl_exec hangs in Windows 8 apache) 表明多个会话是问题所在...我曾尝试在调用 curl_exec 之前终止会话,但没有任何区别。
我没办法尝试!我没有调试信息,因为服务器挂起并且没有返回任何内容。如果有人有任何想法我可以尝试,我将非常感激!谢谢。
【问题讨论】:
-
这里也一样。我已经花了几天但仍然没有运气,有人可以帮忙吗?
-
问题出在本地环境设置上。 OSX 可以运行 php 等,但它的设置并不好。您是否尝试过使用 MAMP?您是否在本地 OSX 环境中进行测试?如果是这样,我相信 MAMP 会有所帮助。如果不是这样,我在意识到这一点之前尝试了很多东西,也许还有另一种解决方案,但很可能是您的服务器设置。
-
仍然没有人回答这个问题。在撰写本文时,我也遇到了同样的问题。
标签: php apache api curl localhost