【问题标题】:Curl Error Hostname Not Found in DNS Cache在 DNS 缓存中找不到 Curl 错误主机名
【发布时间】:2015-10-20 05:17:10
【问题描述】:

我有一个网站 (www.example.com | 123.456.789),在那台机器上我只运行了 1 个网络应用程序。我正在尝试将 php file_get_content() 用于我自己服务器中的文件(位于 /var/www/my_site/public_html 之类的文件上)。

我指的 PHP 代码是:

$url = 'http://example.com/282-home_default/short-wallet-tan.jpg';
var_dump($url);
$json = @file_get_contents($url);
var_dump($json);
die();

但是它总是返回错误。当我尝试手动操作时,使用 CURL

我可以确认我可以 CURL 其他网站,例如 ~$ curl google.com 谁能建议我如何解决这个问题。谢谢

我正在使用 Ubuntu 14.04 LTS 来托管我的网络应用程序。

关于这个问题的一些解决方案指出我应该降级我的 curl 版本。这样做了,但仍然有同样的问题。

【问题讨论】:

  • 你的网站是秘密吗?因为我想测试那段代码
  • 不是真的,我可以从另一台服务器卷曲文件(例如来自 onlinecurl.com)

标签: php curl dns


【解决方案1】:

curl 无法连接到该主机的 TCP 端口号 80。您没有在端口 80 上运行 http 服务器,您让 curl 尝试连接到错误的服务器,或者您的网络中有其他东西阻止了连接握手成功。

【讨论】:

  • 当我尝试使用 onlinecurl.com 做同样的卷曲时,它工作得很好。 http 服务器在 80 端口上运行,我可以确认这一点。
  • 那么你的机器/网络上有东西阻止它工作
  • 我的机器是一个有自己的内部 IP (NAT) 和自己的公共 IP 的 VM。它与 AWS EC2 类似,每个实例都有一个私有 IP 和一个公共 IP(弹性 IP)。这会给你任何提示吗?我已经允许端口 80 的所有 TCP 和 UDP
  • 我在完美工作的 url 上遇到了同样的问题,我有相同的输出表单 curl。它只发生在我的流浪开发机器上,我重新启动以解决问题。但是,如果再次发生这种情况或在我的生产服务器上发生这种情况,最好知道问题是什么以及如何解决这个问题。
猜你喜欢
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
相关资源
最近更新 更多