在生产中Fopen“HTTP请求失败”但在本地工作

时间:2017-03-02 09:02:50

标签: php apache curl phantomjs guzzle

我在我的本地测试服务器(WAMP)上运行PHP代码,并在Digital Ocean,OS Debian 8上的生产服务器上运行它。两者都具有完全相同的代码库。我在使用Guzzle时从函数fopen()获取生产服务器上的错误。

  

创建资源时出错:[message] fopen(http://www.thisismyserver.com):   无法打开流:HTTP请求失败!

我的错误更详细,堆栈跟踪甚至比这更长:

  

RequestException.php第51行中的RequestException:创建错误   资源:[message] fopen(http://www.thisismyserver.com):失败了   开放流:HTTP请求失败!

     

[file] filepath / guzzlehttp / ringphp / src / Client / StreamHandler.php [line] 406

     

在RequestException.php第51行

     

在RequestFuth.php第103行中的RequestException :: wrapException(object(Request),object(RingException))

     

在RequestFsm-> __ invoke(对象(交易))在RequestFsm.php第132行

     

在RequestFsm-> GuzzleHttp {closure}(array('status'=> null,'body'=> null,'headers'=> array(),'effective_url'=>'{{ FulfilledPromise.php第25行中的3}}','error'=> object(RingException)))

所以这一行失败了:

$resource = fopen($url, 'r', null, $context);

我正在使用Guzzle的请求。似乎fopen在生产环境中失败了HTTP请求,但在本地环境上取得了成功。此外,fopen在两种情况下都向生产服务器发出请求。因为代码库是相同的,并且请求URL是相同的(我的生产服务器),它必须是fopen,PHP 7.0或Apache2的配置问题。但我无法弄清楚它可能是什么。有人知道吗?

0 个答案:

没有答案