我在我的本地测试服务器(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的配置问题。但我无法弄清楚它可能是什么。有人知道吗?