file_get_contents(https://url) fails


file_get_contents(https://url) fails

在我的Ubuntu 12.04服务器上运行PHP 5.5在Lighttpd我有

    在<<li> allow_url_fopen/gh>在<<li> allow_url_include/gh>
  • OpenSSL Support Enabled
  • OpenSSL Library/Header Version 1.0.1 2012年3月14日

我不确定这是对的,但我也把extension=openssl。所以在我的php.ini文件中,由服务器重启。我在日志中没有看到任何不愉快的错误信息。

然而,我仍然得到未能打开流:连接超时。相同的URL没有https工作很好。我错过了什么吗

有几种可能性,但是如果您只是尝试从运行代码的服务器的命令行curl HTTPs URL,您将能够找到更多关于原因的信息。

curl -v https://url

常见的问题是url的https证书无效,或者您的服务器上的传出https连接被阻止。

正如上面有人说的,这是一个网络问题。实际上,我错了,当我说http://exmaple.com工作,而https://example.com没有。我运行4个服务器,分别叫它们A, B, C &D在全球不同的地点-两个在美国,一个在欧洲,一个在亚洲。我试图到达的URL是美国的另一个服务器。在发布了这个问题并查看了各种评论之后,我进一步探索了问题,发现我的file_get_contents调用在亚洲服务器上只有失败。TraceRoute显示,亚洲服务器根本无法找到我想要到达的服务器。所以就像这里有人说的,这是一个网络问题。我张贴这个答案,所以任何人谁跑到这个线程在寻求一个解决方案类似的问题意识到,这可能是问题,而不是一个PHP配置的事情。