J'ai essayé d'accéder à ce service REST particulier à partir d'une page PHP que j'ai créée sur notre serveur. J'ai réduit le problème à ces deux lignes. Donc ma page PHP ressemble à ceci:
<?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; ?>
La page meurt sur la ligne 2 avec les erreurs suivantes:
- Avertissement: file_get_contents (): l'opération SSL a échoué avec le code 1. Messages d'erreur OpenSSL: erreur: 14090086: Routines SSL: SSL3_GET_SERVER_CERTIFICATE: la vérification du certificat a échoué dans ... php sur la ligne 2
- Attention: file_get_contents (): Impossible d'activer la crypto dans ... php sur la ligne 2
- Attention: 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
): échec de l'ouverture du flux: échec de l'opération dans ... php sur la ligne 2
Nous utilisons un serveur Gentoo. Nous avons récemment mis à niveau vers la version 5.6 de PHP. C'est après la mise à jour que ce problème est apparu.
J'ai trouvé quand je remplace le service REST par une adresse comme https://www.google.com
; ma page fonctionne très bien.
Dans une tentative précédente, j'ai défini “verify_peer”=>false
et transmis cela en argument à file_get_contents, comme décrit ici: file_get_contents ignorant verify_peer => false? Mais comme l'écrivain l'a noté; cela n'a fait aucune différence.
J'ai demandé à l'un de nos administrateurs de serveur si ces lignes dans notre fichier php.ini existent:
- extension = php_openssl.dll
- allow_url_fopen = Activé
Il m'a dit que puisque nous sommes sur Gentoo, openssl est compilé lorsque nous construisons; et il n'est pas défini dans le fichier php.ini.
J'ai également confirmé que cela allow_url_fopen
fonctionnait. En raison de la nature spécialisée de ce problème; Je ne trouve pas beaucoup d'informations pour m'aider. L'un de vous a-t-il rencontré quelque chose comme ça? Merci.