我最近移动了服务器和已经工作了很长时间的PHP脚本不再有效。我已经将它跟踪到一个包装类,我可以轻松地进行多卷曲操作。整个脚本的工作偶尔会开始完成,但大部分时间都会失败。
然而,在我的测试中,我发现当脚本失败时,它在这里失败了:
$ch = curl_init();
当脚本失败时,$ ch为NULL。文档(php.net)说它应该在成功时返回一个资源,在失败时返回FALSE而不是NULL。
我正在使用Ubuntu 12.04服务器。正如我所说,这个脚本运行了很长时间。所以我认为发生过一些事情之一。首先,来自我的托管公司的图像应该是最新的最新安全补丁等。可能有一个PHP补丁搞砸了吗?其次,我没有在之前的机器(或者我用过的任何其他机器)上遇到的资源问题。最后,托管公司安装的图像有问题。
如果有任何人对此类错误有任何经验,我很乐意听到。
更新
$ch = curl_init();
echo '<br>Res: ' . var_dump($ch);
返回:
Res: NULL
答案 0 :(得分:0)
我遇到过类似的问题,我的猜测是你的php服务器禁用curl_init()
,原因是我不知道。
请检查系统中是否已启用curl_init()
,并请在脚本顶部设置error-reporting(E_ALL);
以查看可能出现的问题。
在我的情况下,我收到一条警告,说明curl_init()
因安全原因而被禁用。