草庐IT

PHP 忽略 php.ini 中的 curl.cainfo 设置(显然)

我正在尝试修复Windows服务器(运行IIS)上的php_curl调用,该调用返回熟悉的错误“SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败”。正如此处许多相关问题中的详细信息,我下载了http://curl.haxx.se/ca/cacert.pem,将其移至我服务器的硬盘驱动器,并将curl.cainfo设置添加到我的php.ini中:curl.cainfo="C:\path\to\cacert.pem"没有,仍然得到同样的错误。但是,在PHP代码中指定路径会导致成功响应!

php - 如何为 PHP 全局设置 CURLOPT_CAINFO?

我知道我可以在任何特定实例上设置该选项,但我真正想要的是设置php.ini或类似的东西来处理所有项目和所有实例。有没有人知道我可以做到这一点的方法?编辑:我对允许证书位于不同服务器上的不同位置的解决方案特别感兴趣。我正在一台需要它的Windows机器上进行开发,但部署到一台Linux服务器上,它不仅不需要它,而且甚至没有指明路径。我知道我可以使用条件来检查代码在哪里运行,但我更愿意让它开箱即用。在我看来,这确实是curl和PHP处理的问题,而不是我的代码,因此它的设置属于那里。 最佳答案 我在这里(在用户注释中)找到了答案:http