【问题标题】:CURL PHP not working on WAMP and XAMPPCURL PHP 不适用于 WAMP 和 XAMPP
【发布时间】:2016-10-19 07:59:14
【问题描述】:

我有这个简单的 php 脚本:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.instagram.com/zuck/'); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$output = curl_exec($ch); 

curl_close($ch);

echo htmlspecialchars($output);

我有 Apache 2.4.17,PHP:5.6.16(我也尝试过使用 PHP 7) 我已经尝试在远程主机服务器上运行它,它可以按预期工作。但是它在我的电脑上根本不起作用。 我尝试了 WAMP、XAMPP、禁用防火墙,直接连接到我的调制解调器(没有路由器),检查了 php.ini 和 c_url 未注释。我还尝试从http://www.anindya.com/ 下载修复程序。也不行。当我尝试curl_version 时它可以工作(所以我猜c_url 已加载)但这个脚本没有。奇怪的是没有错误只是一个空白页。 我真的没有更多的故障排除想法

【问题讨论】:

  • 在上面的代码中在<?php 之后添加error_reporting(E_ALL);ini_set('display_errors',1); 并检查错误
  • 你检查你的 apache error.log 了吗?
  • 检查php_info curl是否启用
  • 我尝试了您的两个答案,但页面上仍然没有任何内容,任何日志文件中都没有与 curl 相关的内容。 php_error.log 中唯一的内容是与 [17-Jun-2016 13:09:20 UTC] PHP Warning: unlink(D:/wamp/bin/apache/apache2.4.17/bin/icudt54.dll): Permission denied in D:\wamp\scripts\wampserver.lib.php on line 78 类似的多行内容
  • 我已经签入了 php_info() 并且它已启用 cURL support enabled cURL Information 7.42.1

标签: php apache xampp wamp


【解决方案1】:

经过一番测试,我发现了问题:

首先我检查了脚本本身的错误:

echo curl_error($ch)

返回这个:

SSL certificate problem: unable to get local issuer certificate

原来我不得不禁用 SSL 证书验证,因为我尝试过的所有网站都使用了 SSL(例如 instagram、google 等)

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false)

【讨论】:

    【解决方案2】:

    此问题已标记为已回答,但对于以后看到此问题的人来说,@amphetamachine 的评论很重要。将 CURLOPT_SSL_VERIFYPEER 设置为 false 不是一个好主意。它可以在您的本地服务器上运行,但您真的希望它在远程服务器上运行吗?

    我建议您在您的 php.ini 文件中添加证书颁发机构文件的绝对路径(您已经取消注释的位置),而不是必须记住注释掉该行以用于生产(或使其以环境为条件) cURL 扩展名)。

    curl.cainfo ="your absolute local path\cacert.pem"
    

    如果您没有此文件,则可以是 downloaded

    这样您的本地测试系统就可以正常工作,并且不会影响您的生产设置。

    您可以在 cURL 选项 CURLOPT_CAPATH 中设置路径,但您也不希望在生产代码中使用此路径。

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 2015-06-05
      • 2013-10-27
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 2011-10-18
      相关资源
      最近更新 更多