Curl错误:DNS缓存中未找到主机名

3

我有一个网站 (www.example.com | 123.456.789),在这台机器上我只运行了一个Web应用程序。我想使用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 Command 我可以确认我可以CURL其他网站,例如~$ curl google.com。有人能建议我该怎么做来解决这个问题。谢谢。 我正在使用Ubuntu 14.04 LTS来托管我的Web应用程序。 关于这个问题的一些解决方案指出,我应该降级我的curl版本。但是我已经这样做了,仍然存在相同的问题。

你的网站是个秘密吗?因为我想测试那段代码。 - Mihai
并不是很需要,顺便告诉你我可以从另一台服务器上使用curl命令获取文件(例如从onlinecurl.com获取)。 - Jeremy
1个回答

2

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


当我尝试使用onlinecurl.com进行相同的curl操作时,它完美地运行。HTTP服务器正在80端口上运行,我可以确认这一点。 - Jeremy
那么你的计算机/网络上肯定有某些东西阻止它正常工作。 - Daniel Stenberg
我的机器是一个虚拟机,它有自己的内部IP(NAT)和公共IP。这类似于AWS EC2,每个实例都有一个私有IP和一个公共IP(弹性IP)。这给你任何提示吗?我已经允许所有TCP和UDP端口80。 - Jeremy
我遇到了同样的问题,使用curl命令得到了相同的输出结果,但是在我的vagrant开发机上出现了问题。我重启了机器以解决这个问题。不过,如果这种情况再次发生或者出现在我的生产服务器上,知道问题所在并解决它会很好。 - A Star

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接