ฉันพยายามเข้าถึงบริการ 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; ?>
หน้าจะตายในบรรทัดที่ 2 พร้อมข้อผิดพลาดต่อไปนี้:
- คำเตือน: file_get_contents (): การดำเนินการ SSL ล้มเหลวด้วยรหัส 1 OpenSSL ข้อความแสดงข้อผิดพลาด: ข้อผิดพลาด: 14090086: กิจวัตร SSL: SSL3_GET_SERVER_CERTIFICATE: การตรวจสอบใบรับรองล้มเหลวใน ... php on line 2
- คำเตือน: file_get_contents (): ไม่สามารถเปิดใช้งานการเข้ารหัสลับใน ... php ในบรรทัดที่ 2
- คำเตือน: 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 ของเราหรือไม่:
- ขยาย = php_openssl.dll
- allow_url_fopen = เปิด
เขาบอกฉันว่าเนื่องจากเราอยู่ใน Gentoo, openssl จึงถูกรวบรวมเมื่อเราสร้าง; และยังไม่ได้ตั้งค่าในไฟล์ php.ini
ฉันยังยืนยันว่าallow_url_fopen
ใช้งานได้ เนื่องจากลักษณะเฉพาะของปัญหานี้ ฉันไม่ได้รับข้อมูลจำนวนมากเพื่อขอความช่วยเหลือ คุณเคยเจอเรื่องแบบนี้บ้างไหม? ขอบคุณ