小编Ben*_*idt的帖子

PHP7 + curl(SSL/TLS)提供502 Bad Gateway

我正在开发一个使用Dropbox SDK做一些事情的网页.大多数情况都是通过CLI发生的,但必须在浏览器中完成一件特别的事情.不过,我偶然发现了一个有趣的问题.

$dbxClient = new dbx\Client($accountToken, 'xxx/' . VERSION);
$folderMetadata = $dbxClient->getMetadataWithChildren("/");
Run Code Online (Sandbox Code Playgroud)

运行此代码在CLI中运行良好.然而,在浏览器中运行它会给我一个502.由于困惑,我启动了xdebug并跟踪问题出现的位置.我发现,Dropbox的curl-call导致了它,所以我写了一个小例子脚本来看看,如果curl工作的话.它不是.

<?php
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "https://example.com"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch); 

    curl_close($ch);
    echo $output;
Run Code Online (Sandbox Code Playgroud)

在浏览器中运行此代码会立即生成502.如果我删除https://或将其设为http://(或在CLI中运行),它可以工作.问题似乎是PHP7 + curl + SSL.添加curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);不起作用.

我该怎么做才能找到,为什么会发生这种情况以及如何解决它?

系统信息:

  • OS X 10.11.2
  • nginx 1.8.0,通过自制软件安装
  • PHP 7.0.3,通过自制软件安装
  • curl 7.43.0,通过自制软件安装
  • OpenSSL 1.0.2f,通过自制软件安装

php ssl curl

3
推荐指数
1
解决办法
3281
查看次数

标签 统计

curl ×1

php ×1

ssl ×1