Php curl仅适用于某些服务器

Php curl仅适用于某些服务器,php,linux,curl,centos,Php,Linux,Curl,Centos,我有两台几乎相同的Centos Linux服务器。其中一个位于我家,运行iptables,在它和互联网之间有一个硬件防火墙(华硕无线路由器)。另一个是远程VPS,运行iptables,据我所知没有硬件防火墙。也不要使用selinux(是的,我知道我应该使用它) 以下脚本在VPS上按需要工作,但在物理计算机上不提供响应 这可能是什么原因造成的,如何修复 <?php $source='http://www.google.com/uds/Gfeeds?context=0&num=10&a

我有两台几乎相同的Centos Linux服务器。其中一个位于我家,运行iptables,在它和互联网之间有一个硬件防火墙(华硕无线路由器)。另一个是远程VPS,运行iptables,据我所知没有硬件防火墙。也不要使用selinux(是的,我知道我应该使用它)

以下脚本在VPS上按需要工作,但在物理计算机上不提供响应

这可能是什么原因造成的,如何修复

<?php
$source='http://www.google.com/uds/Gfeeds?context=0&num=10&hl=en&output=json&refreshInterval=0&q=http%3A%2F%2Fconstruction.com%2Frss%2Fconstruction.xml%3F1414243577&v=1.0&nocache=0';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $source);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($ch);
curl_close($ch);
echo($data);
?>


您能从shell中卷曲该URL吗?您可以放置
echo curl\u error($ch)在关闭句柄以检查是否有错误之前。@Himal。还没有尝试从shell中执行curl,但您的另一个建议肯定是:
无法解析主机“www.google.com”
。我一直认为这是某种防火墙问题,但事实并非如此。下一步该怎么办?谢谢。您可以使用
iptables-L
列出规则。您修改了吗?您可以尝试将其重置为默认值。我将首先尝试找出阻止DNS请求的实际原因。iptable或硬件防火墙。@Himal。我认为这是因为缺少名称服务器。我编辑
/etc/resolv.conf
以添加8.8.8.8,但每当我重新启动服务器时,它都会返回到由/sbin/dhclient脚本生成的
。。。。nameserver 192.168.1.1
。原来我的nameserver一直在resolv.conf中消失。在我的/etc/sysconfig/networkscripts/ifcfg xxx文件中添加了peernds=no,一切正常。谢谢你的帮助。