ปัญหาอยู่ในคำถาม ฉันได้ทำการตรวจสอบอย่างละเอียดเพื่อหาทางแก้ปัญหาที่เกี่ยวกับเรื่องนี้และฉันรู้ว่ามีหัวข้อนี้และฉันได้ติดตามพวกเขาด้วยและไม่มีอะไรทำงาน ที่ถูกกล่าวว่าฉันจะออกรายการทุกอย่างที่ฉันได้ทำจนถึง ฉันใช้ PHP 5.2.14 พร้อมการแก้จุดบกพร่อง Zend สำหรับเวอร์ชัน Eclipse ล่าสุดบนคอมพิวเตอร์ Windows XP ของฉัน ฉันมี RAM 1 GB ฉันติดตั้ง XAMPP พร้อม Apache, MySQL และ FileZilla
บน XAMPP ฉันได้ทำดังต่อไปนี้ (Apache ถูกปิดในช่วงการเปลี่ยนแปลงเหล่านี้): คลิกธุรการจาก Control Panel XAMPP https:// localhost/xampp/
และเดินไป จากที่นั่นฉันยอมรับ certs จากบรรทัดนี้ในหน้าต้อนรับ:
สำหรับการสนับสนุน OpenSSL โปรดใช้ใบรับรองการทดสอบกับ https: // 127.0.0.1 หรือ https: // localhost
phpinfo()
มาตราเดียวกันกับที่ผมตรวจสอบ ภายใต้ 'สิ่งแวดล้อม' คือSERVER["HTTPS"]
on
ภายใต้ 'Apache สิ่งแวดล้อม' คือHTTPS
On
ภายใต้ 'ตัวแปร PHP, คือ_SERVER["HTTPS"]
On
ใต้ 'Phar' OpenSSL support
คือdisabled
(ติดตั้ง ext / openssl) ฉันไม่รู้วิธีเปิดใช้งาน Phar
ตอนนี้เกี่ยวกับไฟล์ใน C: \ xampp ฉันไปที่โฟลเดอร์ PHP ภายใต้การผลิตและการพัฒนาไฟล์ php.ini (ดีกว่าปลอดภัยกว่าขออภัย) ผมมีallow_url_fopen=On
, allow_url_include=On
และฉันออกอัฒภาคเพื่อที่extension=php_openssl.dll
จะไม่ออกความเห็น ฉันยังยืนยันว่า. dll ที่อยู่ในโฟลเดอร์ ext ของโฟลเดอร์ PHP ทั้ง libeay32.dll และ ssleay32.dll อยู่ในโฟลเดอร์ PHP และ Apache โฟลเดอร์ Apache ไม่มีไฟล์ php.ini ที่เป็นประโยชน์หรือกำลังพัฒนา
ฉันไปhttp://www.slproweb.com/products/Win32OpenSSL.htmlและติดตั้ง Win32 OpenSSL v1.0.0d เพื่อวัดอย่างปลอดภัย
ตอนนี้บรรทัดของรหัสที่เป็นปัญหาใน restore_website.php ของฉันมีลักษณะดังนี้:
$urlquery = "https://www.googleapis.com/customsearch/v1?key=".$appid."&cx=".$google_searchid."&q=".$query."&alt=atom&num=".$results;
$xmlresults = file_get_contents($urlquery);
ฉันมีเว็บไซต์อื่นอีกสองแห่งที่ฉันสอบถาม แต่พวกเขาให้บริการผ่าน HTTP และทำงานได้ดี ฉันยังมีรหัสบรรทัดนี้ป้อนใกล้สิ้นสุดสคริปต์:
echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $w) ? 'yes':'no', "\n";
echo 'wrappers: ', var_dump($w);
เมื่อฉันเรียกใช้เป็นสคริปต์ PHP บน Eclipse ผลลัพธ์ทุกอย่างสมบูรณ์แบบอย่างที่ฉันต้องการพร้อมกับผลลัพธ์เหล่านี้:
openssl: yes
http wrapper: yes
https wrapper: yes
wrappers: array(10) {
[0]=>
string(5) "https"
[1]=>
string(4) "ftps"
[2]=>
string(3) "php"
[3]=>
string(4) "file"
[4]=>
string(4) "data"
[5]=>
string(4) "http"
[6]=>
string(3) "ftp"
[7]=>
string(13) "compress.zlib"
[8]=>
string(14) "compress.bzip2"
[9]=>
string(3) "zip"
}
แม้จะมีการเปลี่ยนแปลงทั้งหมดที่ฉันทำ (หลังจากที่ฉันเริ่ม Apache) ฉันยังคงได้รับข้อผิดพลาดเดิมในครั้งแรกที่ฉันเข้าถึงสคริปต์ PHP ใน Eclipse และ Firefox ผ่านhttp: //localhost/tutorial/retrieve_website.php :
คำเตือน: file_get_contents () [function.file-get-content]: ไม่พบ wrapper "https" - คุณลืมเปิดใช้งานเมื่อคุณกำหนดค่า PHP หรือไม่ ใน C: \ xampp \ htdocs \ tutorial \etch_website.php บรรทัดที่ 29
คำเตือน: file_get_contents (https: // www.googleapis.com/customsearch/v1?key= API ID ที่ลบ & cx = ลบ ID การค้นหา & q = The + Devil + ไป + ลง + ถึง + Georgia & alt = atom & num = 5) [function.file-get-content]: ไม่สามารถเปิดกระแสข้อมูล: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าวใน C: \ xampp \ htdocs \ tutorial \etch_website.php ที่บรรทัด 29
คำเตือน: DOMDocument :: loadXML () [domdocument.loadxml]: สตริงว่างที่ให้มาเป็นอินพุตใน C: \ xampp \ htdocs \ tutorial \etch_website.php บรรทัด 33
openssl: ไม่มี http wrapper: ใช่ https wrapper: no wrappers: array (10) {[0] => สตริง (3) "php" [1] => สตริง (4) "ไฟล์" [2] => สตริง (4) ) "glob" [3] => สตริง (4) "data" [4] => สตริง (4) "http" [5] => สตริง (3) "ftp" [6] => สตริง (3) " zip "[7] => สตริง (13)" compress.zlib "[8] => สตริง (14)" compress.bzip2 "[9] => สตริง (4)" phar "}
ฉันมองข้ามหรือไม่ทำอะไร สำหรับความรู้ของฉันฉันได้ทำทุกอย่างที่ฉันได้ทำการวิจัยเกี่ยวกับ HTTPS และ OpenSSL
/apache/bin/php.ini
ฉันไม่พบใน XAMPP Portable Light 1.8.1 อย่างไรก็ตามphp/php.ini
มีอยู่แล้ว แต่การเปิดใช้งาน ssl ที่นี่ไม่ได้ช่วย :(