【问题标题】:PHP: CURL is enabled but has no effectPHP:CURL 已启用但没有效果
【发布时间】:2020-05-28 15:24:06
【问题描述】:

我正在尝试在PHP 中使用cURL 从外部网站获取数据,但不知何故它不起作用。

我检查了 CURLphpinfo() 中启用。它显示cURL 已启用

但是,我的代码不起作用。

<?php
if (! function_exists ( 'curl_version' )) {
    exit ( "Enable cURL in PHP" );
}

$ch = curl_init ();
$timeout = 0; // 100; // set to zero for no timeout
$myHITurl = "http://www.google.com";
curl_setopt ( $ch, CURLOPT_URL, $myHITurl );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
$file_contents = curl_exec ( $ch );
if (curl_errno ( $ch )) {
    echo curl_error ( $ch );
    curl_close ( $ch );
    exit ();
}
curl_close ( $ch );

// dump output of api if you want during test
echo "$file_contents";
?>


超时。

我没有使用 WAMP 或 XAMPP 服务器。上面的代码直接在服务器上运行。 我不知道出了什么问题。

【问题讨论】:

  • 您使用的是哪个操作系统?
  • 该错误表明 curl 本身正在工作。这看起来像是运行脚本的主机上的防火墙问题。
  • @WisdmLabs 服务器操作系统为linux
  • 我的 80 和 443 端口被服务器端阻止。感谢两位帮助我!

标签: php curl


【解决方案1】:

您的代码非常完美,我已经在自己的服务器(德克萨斯州的数据中心)上对其进行了测试,并且运行良好。

我的猜测是你的服务器IP被禁止了。尝试获取不同的 URL,看看它是否适合您。如果是,则您被禁止,如果不是,则可能是您的服务器中的防火墙配置问题。

【讨论】:

  • 让我结帐Firewall 问题。但是,我无法理解IP is banned。你能简单地告诉我吗?如何检查我的 IP 是否被禁止。
  • 我不能确定它是否被禁止,因为它也可能是防火墙配置问题。您可以尝试的另一件事是在终端中运行telnet www.google.com 80 并查看是否可以连接。尝试在您的代码中获取不同的 URL,例如 example.com,看看它是否有效。祝你好运!
  • 我的80 & 443 端口被服务器端阻止。感谢您的回答@Aviram
【解决方案2】:

如果您使用的是 Centos 或 Fedora 或任何 Redhat Distro,请禁用 SELinux

nano /etc/selinux/config

改变

SELINUX=enforcing

SELINUX=disabled

【讨论】:

  • 在 CentOS 8 上使用 "sestatus" 而不是 "nano /etc/selinux/config" 给出 "unknown"。
猜你喜欢
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多