【问题标题】:Windows MAMP - PHP CURL IssueWindows MAMP - PHP CURL 问题
【发布时间】:2018-02-23 14:56:37
【问题描述】:

我在使用 Windows MAMP Pro 3.3.1 让 PHP 的 CURL 工作时遇到问题。

更具体的问题是我可以使用 curl_exec 向 API 发送请求,但它总是返回 false。

当我尝试用 XAMPP 做同样的事情时,它会毫无问题地返回完整的响应。

我尝试更改 PHP 版本,我检查了 php curl 扩展是否已启用,我可以在 phpinfo 中看到 CURL 信息。

有人知道为什么以及如何使用 MAMP 解决此问题吗?

【问题讨论】:

标签: php curl response mamp


【解决方案1】:

所以我已经看到了这个问题。显然(仍需要调查),与 HTTPS 不同,CURL 请求不会从浏览器获取证书。我们需要手动下载站点的证书并将其添加到 PHP ini。

我从这里拿到了证书:

https://curl.haxx.se/ca/cacert.pem

添加 php.ini 的路径。您应该在 [curl] 下看到 ;curl.cainfo。取消注释并添加路径:

curl.cainfo = "path_to_cert\cacert.pem"

重启 apache 就可以了(至少我的是这样)。

【讨论】:

  • 我什至在任何 MAMP php.ini 文件中都没有 [curl] 和 [openssl] 条目。
  • 将 curl.cainfo = "path_to\cacert.pem" 添加到 php.ini 就可以了。你应该撤消你的答案,这样我才能投票。
  • 非常感谢托马斯。我希望 MAMP 能在 Windows MAMP 4 中解决这个问题。
  • 如果有帮助,我的 php.ini 文件位于 /Applications/MAMP/bin/php/php7.1.1/conf/php.ini
  • 我也有同样的问题,尝试了迄今为止我在这个问题上看到的所有解决方案,仍然没有解决方案。我正在使用 MAMP。在我的 php.ini 中,我使用 this curl.cainfo ="/Applications/MAMP/conf/apache/extra/cacert.pem" 作为 curl 的 url。我使用var_dump(php_ini_loaded_file()); 来获取我的php ini 位置,这就是我得到的string(48) "/Applications/MAMP/bin/php/php7.2.8/conf/php.ini" 仍然没有解决方案。任何其他建议将不胜感激。
【解决方案2】:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

【讨论】:

  • 它也适用于 macos。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2011-06-21
  • 1970-01-01
  • 2011-11-23
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多