【问题标题】:PHP cURL problem from local来自本地的 PHP cURL 问题
【发布时间】:2011-03-10 18:56:21
【问题描述】:

快速提问:我有一个 PHP 脚本,它通过 cURL 查询查询 Pinnacle Cart API。在我的笔记本电脑上测试时,没问题。我得到了 XML 响应等等。但是一旦它在远程服务器上......我没有得到任何结果。我事先检查以确保在远程服务器上安装了 cURL,并且确实如此。我没有与远程服务器相同的版本(libcurl/7.15.5 vs libcurl/7.19.5),但我有点怀疑这是这里的问题。知道什么可能会影响我的脚本吗?

编辑:这是我将错误输出到带有 CURLOPT_STDERR 的文件时得到的结果:

本地:

  • 成功设置证书验证位置:
  • CA 文件:无 CApath:/etc/ssl/certs
  • 使用 DHE-RSA-AES256-SHA 的 SSL 连接

服务器端:

  • 成功设置证书验证位置:
  • CA 文件:/etc/pki/tls/certs/ca-bundle.crt CApath:无
  • SSL 证书问题,验证 CA 证书是否正常。详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

谷歌搜索 1 分钟后...我发现使用此参数: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 我的脚本可以在服务器上运行...但它有点被淘汰了,不是吗?

【问题讨论】:

    标签: php curl


    【解决方案1】:

    查看您的 PHP 错误日志或打开 PHP 的错误报告功能,以便为您提供准确的错误消息。很可能 PHP 的 safe_mode 在您的服务器上是打开的,并且会阻止 curl 库的某些功能(例如 CURLOPT_FOLLOWLOCATION)。

    【讨论】:

    • 按照同样的方法,启用 CURLOPT_VERBOSE 选项(并可能将 CURLOPT_STDERR 指向一个文件以供 _VERBOSE 输出)。
    • 是的,这是另一个问题,即使我使用了 error_reporting(-1),我仍然没有看到任何错误...但是对于 Frank 的方法,这可能不是必需的。另外,我检查了 php.ini 中的 safe_mod 已关闭(但我猜该值可能会在其他地方更改)
    猜你喜欢
    • 2015-03-22
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2011-11-23
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多