我目前正在开发一个项目,该项目在同一台服务器上对我的 API 进行 ajax 调用。直到几个小时前 cURL 之前一切都很好。突然停止工作无缘无故它给了我以下错误
Protocol https not supported or disabled in libcurl
但这没有任何意义,因为它工作得更早,我唯一改变的是登录屏幕(仅限 PHP)和服务器上的时区,从默认为“欧洲/柏林”
dpkg-reconfigure tzdata
[php.ini] date.timezone = "Europe/Berlin";
我已经重新启动了 apache2,重新启动了服务器,检查了 php.ini 文件和我的 phpinfo,一切都一样,没有任何错误或更改,但 curl 无法正常工作。我试图 curl 其他主机和本地主机,但没有任何效果。我还检查了/var/mail/root,没有任何错误。
我的服务器信息很少
这就是我正在使用的 cURL 代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, count($params));
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
session_write_close();
$result = curl_exec($ch);
curl_close($ch);
session_start();
就像我说的那样,它运行良好,超过 1 个月没有任何问题。这是我见过的最奇怪的事情。我希望有人能帮助我。
如果没有, curl 有什么好的替代品吗? (POST请求)
提前致谢!
最佳答案
感谢大家的帮助,但我发现了错误。
问题如下:curl
不适用于 https 协议(protocol),因为库文件夹中的链接/文件损坏。如果 curl 不适合您,请咨询 curl --version
如果您收到以下错误:
curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl)
如果是,请转至
/usr/local/lib
并删除libcurl
链接/文件。这为我解决了这个问题。之后只需重新启动 apache2,它应该会再次工作。请注意,这只是为我解决了问题,而不是全局解决问题。因此,请注意您在服务器上删除的内容。永远做好备份!
关于PHP cURL 突然无缘无故无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42815334/