最佳答案
我一直试图从我在服务器上创建的PHP页面访问这个特定的REST服务。我把问题缩小到这两行。我的PHP页面是这样的:
<?php
$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json");
echo $response; ?>
页面在第2行结束,出现以下错误:
- 警告:file_get_contents(): SSL操作与代码1失败。 OpenSSL错误消息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 php在第2行
- 警告:file_get_contents(): Failed to enable crypto in…php on 李第2行< / > <李>警告: file_get_contents (
李< / ul > < / >https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json
): Failed to open stream: operation Failed in…php on line 2
我们使用的是Gentoo服务器。我们最近升级到了PHP 5.6版本。这个问题是在升级之后出现的。
我发现当我用https://www.google.com
这样的地址替换REST服务时;我的页面工作得很好。
在之前的尝试中,我设置了“verify_peer”=>false
,并将其作为参数传递给file_get_contents,如下所述:这没什么区别。
我问过我们的一个服务器管理员,php.ini文件中是否存在这些行:
他告诉我,因为我们在Gentoo上,所以openssl是在我们构建的时候编译的;在php。ini文件中没有设置。
我还确认allow_url_fopen
正在工作。由于这个问题的专门性;我找不到很多有用的信息。你们有人遇到过这样的东西吗?谢谢。