Masalahnya ada di pertanyaan. Saya telah melakukan penyelidikan menyeluruh untuk solusi dalam hal ini dan saya tahu ada topik untuk ini dan saya telah mengikuti mereka juga dan tidak ada yang berhasil. Dikatakan bahwa saya akan menuliskan semua yang telah saya lakukan sejauh ini. Saya menjalankan PHP 5.2.14 dengan Zend Debugging pada versi Eclipse terbaru di komputer Windows XP saya. Saya memiliki 1 GB RAM. Saya menjalankan XAMPP dengan Apache, MySQL, dan FileZilla diinstal.
Pada XAMPP saya telah melakukan yang berikut (Apache mati selama perubahan ini): Mengklik Admin dari Panel Kontrol XAMPP dan pergi ke https:// localhost/xampp/
. Dari sana saya menerima sertifikat dari baris ini di halaman sambutan:
Untuk dukungan OpenSSL silakan gunakan sertifikat tes dengan https: // 127.0.0.1 atau https: // localhost.
Pada bagian yang sama saya periksa phpinfo()
. Di bawah 'Lingkungan', SERVER["HTTPS"]
adalah on
. Di bawah 'Lingkungan Apache', HTTPS
adalah On
. Di bawah 'Variabel PHP, _SERVER["HTTPS"]
adalah On
. Di bawah 'Phar', OpenSSL support
adalah disabled
(instal ext / openssl). Saya tidak tahu cara mengaktifkan yang Phar.
Sekarang mengenai file-file itu sendiri di C: \ xampp, saya pergi ke folder PHP. Di bawah kedua produksi dan pengembangan file php.ini (lebih baik aman daripada menyesal), saya memiliki allow_url_fopen=On
, allow_url_include=On
, dan saya dihapus titik koma, sehingga extension=php_openssl.dll
tidak lagi komentar. Saya bahkan mengkonfirmasi bahwa .dll ada di folder ext folder PHP. Baik libeay32.dll dan ssleay32.dll berada di folder PHP dan Apache. Folder Apache tidak mengandung file php.ini produktif atau pengembangan.
Saya telah mengunjungi http://www.slproweb.com/products/Win32OpenSSL.html dan menginstal Win32 OpenSSL v1.0.0d untuk mengukur keamanan.
Sekarang baris kode yang dipermasalahkan di myveve_website.php terlihat seperti ini:
$urlquery = "https://www.googleapis.com/customsearch/v1?key=".$appid."&cx=".$google_searchid."&q=".$query."&alt=atom&num=".$results;
$xmlresults = file_get_contents($urlquery);
Saya memiliki dua situs web lain yang saya minta tetapi mereka dilayani melalui HTTP dan berfungsi dengan baik. Saya juga memasukkan baris kode ini di dekat akhir skrip:
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);
Ketika saya menjalankannya sebagai PHP Script on Eclipse, semuanya menampilkan dengan sangat baik seperti yang saya inginkan bersama dengan hasil ini:
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"
}
Terlepas dari semua perubahan yang saya buat (setelah saya memulai Apache), saya masih mendapatkan kesalahan yang sama saat pertama kali saya mengakses skrip PHP saya di Eclipse dan Firefox melalui http: //localhost/tutorial/retrieve_website.php :
Peringatan: file_get_contents () [function.file-get-content]: Tidak dapat menemukan pembungkus "https" - apakah Anda lupa mengaktifkannya ketika Anda mengonfigurasi PHP? di C: \ xampp \ htdocs \ tutorial \ mengambilve_website.php on line 29
Peringatan: file_get_contents (https: // www.googleapis.com/customsearch/v1?key= dihapus ID API & cx = ID pencarian yang dihapus & q = The + Devil + pergi + turun + ke + Georgia & alt = atom & num = 5) [function.file-get-content]: gagal membuka streaming: Tidak ada file atau direktori seperti itu di C: \ xampp \ htdocs \ tutorial \ retve_website.php pada baris 29
Peringatan: DOMDocument :: loadXML () [domdocument.loadxml]: String kosong diberikan sebagai input dalam C: \ xampp \ htdocs \ tutorial \ retve_website.php on line 33
openssl: no http wrapper: yes https wrapper: no wrappers: array (10) {[0] => string (3) "php" [1] => string (4) "file" [2] => string (4 ) "glob" [3] => string (4) "data" [4] => string (4) "http" [5] => string (3) "ftp" [6] => string (3) " zip "[7] => string (13)" compress.zlib "[8] => string (14)" compress.bzip2 "[9] => string (4)" phar "}
Apa yang saya abaikan atau gagal lakukan? Sepengetahuan saya sendiri, saya telah melakukan semua yang saya teliti tentang HTTPS dan OpenSSL
/apache/bin/php.ini
, saya tidak dapat menemukannya di XAMPP Portable Light 1.8.1? Namunphp/php.ini
ada, tetapi mengaktifkan ssl di sini tidak membantu :(