wget适用于命令行,但不适用于PHP

时间:2014-01-17 20:25:33

标签: php wget

我正在尝试访问PHP脚本中的一些远程网站,但脚本会保持超时。

它仅在测试Web服务器上运行时失败,但在生产Web服务器上不会失败。

在访问大多数其他网址时,该脚本运行正常,例如stackoverflow.com或www.google.com。

我已经尝试使用PHP命令file_get_contents($url),以及exec("wget $url")和exec("curl $url"),所有这些都失败了。同样,大多数网站都运行良好,而不是我真正想要的网站。

我可以通过wget和curl访问命令行上的远程站点。甚至PHP脚本也可以从命令行运行!所以我知道脚本有效。

该脚本在我们的生产Web服务器上运行时有效。但它在测试Web服务器上运行时不起作用。

看来,只有来自Apache,而不是命令行,从测试服务器到远程站点的GET请求才有特殊之处。

如何诊断此问题?

1 个答案:

答案 0 :(得分:0)

以下是需要考虑的一些事项:

  • 命令行和Web服务器的不同系统用户。
  • 代理服务器配置(有时通过环境变量完成)。
  • 测试和生产服务器的不同网络(DNS,路由,防火墙等)配置。