Я намагався отримати доступ до цієї послуги REST зі сторінки PHP, яку я створив на нашому сервері. Я звузив проблему до цих двох рядків. Отже моя сторінка 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; ?>
Сторінка вмирає на другому рядку із такими помилками:
- Попередження: file_get_contents (): Операція SSL не виконана з кодом 1. Повідомлення про помилки OpenSSL: помилка: 14090086: Підпрограми SSL: SSL3_GET_SERVER_CERTIFICATE: не вдалося перевірити сертифікат у ... php у рядку 2
- Попередження: file_get_contents (): не вдалося ввімкнути криптовалюту у ... php у другому рядку
- Попередження: 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
): не вдалося відкрити потік: операція не вдалася в ... php у рядку 2
Ми використовуємо сервер Gentoo. Нещодавно ми оновили до версії PHP 5.6. Це було після оновлення, коли з’явилася ця проблема.
Я знайшов, коли я замінював службу REST на таку адресу https://www.google.com
; моя сторінка працює чудово.
У попередній спробі я встановив “verify_peer”=>false
і передав це як аргумент file_get_contents, як описано тут: file_get_contents ігноруючи verify_peer => false? Але як зазначав письменник; це не мало значення.
Я запитав одного з наших адміністраторів сервера, чи існують ці рядки у нашому файлі php.ini:
- extension = php_openssl.dll
- enable_url_fopen = Увімкнено
Він сказав мені, що оскільки ми перебуваємо на Gentoo, відкриваючий файл збирається, коли ми будуємо; і він не встановлений у файлі php.ini.
Я також підтвердив, що allow_url_fopen
працює. Через спеціалізований характер цієї проблеми; Я не знаходжу багато інформації для допомоги. Хтось із вас натрапив на щось подібне? Дякую.