我在Windows 7上使用IIS运行5.2.14。使用Windows平台安装程序。
当我编写一个使用cURL或file_get_contents()的脚本并通过命令行运行它时,一切都很好。
如果我在网页中使用相同的代码,在IIS中运行,则请求始终失败。 cURL返回一个响应代码0. file-get_contents返回“Warning:file_get_contents():php_network_getaddresses:getaddrinfo failed:没有这样的主机已知”。我甚至尝试将代码放在一个单独的脚本中,并通过exec()运行它以将输出传递回我的Web脚本。但是,当由IIS执行的PHP脚本调用时,从CLI运行良好的脚本失败。
php.exe -i不返回任何错误。通过IIS在网页中运行的phpinfo()显示与php.exe -i中相同的活动/激活cURL。我的libeay.dll和ssleay.dll库遍布我的路径。
cURL本身似乎没有问题。我最好的猜测是,这是一个防火墙或权限的东西,其中IIS作为访客用户运行PHP,阻止网络访问,但当我从命令行运行它时,我没有被阻止。
我不太了解配置IIS或防火墙或安全策略以找出改变的地方,我不想通过随意降低安全性直到点击某些内容而不小心打开一个大的黑客隧道进入我的系统。请帮忙。
答案 0 :(得分:0)
“警告:file_get_contents():php_network_getaddresses:getaddrinfo failed:没有这样的主机”。
这是你的线索,没有这样的主机是知道的,尝试一个原始IP地址,看看是否有效,如果是这样,那是因为PHP无法看到主机,IIS基本上没有传递该信息。