cURL请求在服务器上正常工作,但不能在我的localhost上工作:8080

时间:2013-09-25 14:40:14

标签: php apache curl ssl

我创建了一个在我的#########。com帐户中登录的流程。当我把它放在我的FTP上时,它就像一个魅力。

这是问题

我在localhost:8080上的机器上设置了一个apache本地服务器(easyPHP)。 我还在我的机器上设置了一个IIS服务器端口 - >本地主机:80

我的cURL请求不起作用。这是我的代码:

$lien = 'https://#########.com/login';
$postfields = array( 
    'username' => 'xxx',
    'password' => 'xxx'
);


$path_cookie = 'connexion.txt';
if (!file_exists(realpath($path_cookie))) touch($path_cookie);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $lien);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie));

$return = curl_exec($curl);
echo($return);
echo 'error:' . curl_error($curl);
curl_close($curl);
}

首先:是的我在服务器上安装了cURL,我在我的apache服务器和IIS服务器之间做了一些其他的cURL请求,一切正常。

其次:文件“connexion.txt”很好创建,但为空。

第三:($ return)的回显没有响应,在我的服务器上响应是“对象移到这里。

第四:是的,我读了这个主题,但对我帮助不大..

  

cURL not working

最后:当我尝试调试cURL请求时,错误是:

  

错误:SSL证书问题:无法获得本地颁发者证书

有人能帮帮我吗?我将留在这里回答评论/测试/调试/回答等。

谢谢!

2 个答案:

答案 0 :(得分:5)

您很可能根本不使用证书,因此请使用http或尝试使用

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

答案 1 :(得分:2)

将“CURLOPT_SSL_VERIFYHOST”设置为false并不是一个好习惯。

我建议您下载CA根证书包并告诉PHP在哪里找到它。

  1. 您可以找到download here
  2. 下载.pem并将其保存在PHP安装可以访问的位置 它。
  3. 将文件位置添加到您的php.ini:curl.cainfo="C:\Xamp\php\cacert.pem"
  4. 重新启动服务器]
  5. 安全地完成了工作。

    字体:https://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/