PHP cURL 突然无缘无故无法工作

iMo*_*ked 6 php curl

我目前正在开发一个项目,该项目在同一服务器上对我的 API 进行 ajax 调用。一切都很顺利,直到几个小时前,cURL突然无缘无故停止工作,并给出了以下错误

Protocol https not supported or disabled in libcurl
Run Code Online (Sandbox Code Playgroud)

但这没有任何意义,因为它早些时候工作过,我唯一改变的是登录屏幕中的某些内容(仅 PHP)和服务器上的时区从默认为“欧洲/柏林”

dpkg-reconfigure tzdata
[php.ini] date.timezone = "Europe/Berlin";
Run Code Online (Sandbox Code Playgroud)

我已经重新启动了 apache2,重新启动了服务器,检查了 php.ini 文件和我的 phpinfo,一切都一样,没有任何错误或更改,但curl 无法工作。我尝试卷曲其他主机和本地主机,但没有任何效果。我还检查了/var/mail/root,没有任何错误。

我的服务器的信息很少

  • 德班8
  • 赛门铁克的 SSL 证书
  • 无任何限制的完全 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();
Run Code Online (Sandbox Code Playgroud)

就像我说的,它运行良好,没有任何问题超过 1 个月。这是我见过的最奇怪的事情。我希望有人能帮助我。如果没有,有什么好的替代curl的方法吗?(POST 请求)

提前致谢!

iMo*_*ked 2

感谢大家的帮助,但我发现了错误。问题如下:

curl不适用于 https 协议,因为库文件夹中存在损坏的链接/文件。如果curl 不适合您,请检查curl --version是否收到以下错误:

curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl)
Run Code Online (Sandbox Code Playgroud)

如果是,请转到/usr/local/lib并删除这两个libcurl链接/文件。这为我解决了问题。之后只需重新启动 apache2 即可再次工作。

请注意,这仅解决了我的问题,而不是全局解决问题。因此,请注意您在服务器上删除的内容。务必做好备份!