【问题标题】:CURL not working from web browser on Red Hat, Apache, PHP, AWSCURL 在 Red Hat、Apache、PHP、AWS 上的 Web 浏览器中不起作用
【发布时间】:2021-09-16 01:08:10
【问题描述】:

我在运行 Apache 的 Red Hat AWS 服务器上有一个 PHP 脚本:

$url = "https://testsite.com/testfile.txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo curl_error($ch);
$responseInfo = curl_getinfo($ch);
echo "http_code=".$responseInfo['http_code']."\n".$response."\n";
curl_close($ch);

当我从 SSH 终端运行它时,它可以工作。但是如果我在网络浏览器中加载页面,它会返回“http_code=0”。在这两种情况下,curl_error 都不返回任何内容。

我需要做什么才能让 CURL 在网络浏览器中工作?

【问题讨论】:

  • 它在 Amazon Linux 2 AMI 中工作,所以我认为我的解决方案只是使用它,直到找到 RHEL 的解决方案。

标签: php linux amazon-web-services curl redhat


【解决方案1】:

由于没有产生错误,可以假设 curl 正在工作,但您没有得到想要的结果。

背后的原因可能不止一个 -

首先检查安全组中的出站规则,它可能在那里失败

其次可能是由于https,尝试使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

同时检查是否安装了 libcurl

如果尝试以上 3 件事都不起作用,则必须寻找其他可能性。

【讨论】:

  • 感谢您的回复。 1)出站规则是“所有流量”。同一安全组适用于 Amazon Linux AMI。 2) CURLOPT_SSL_VERIFYPEER 不起作用。 3) 安装 libcurl。它从终端工作。 ?‍♂️
  • http code = 0 表示 url 有一些错误,但你提到了从 SSH 工作的相同 url,请交叉检查你的 PHP 代码中的 url 是否正常
  • 是的,这两种情况下都是同一个文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 2015-08-22
相关资源
最近更新 更多