문제는 문제입니다. 나는 이것과 관련하여 해결책을 철저히 조사했으며 이것에 관한 주제가 있다는 것을 알고 그것을 따라 갔으며 아무것도 효과가 없었습니다. 그것은 지금까지 내가 한 모든 것을 정확하게 나열하겠다고 말하고 있습니다. Windows XP 컴퓨터의 최신 Eclipse 버전에서 Zend Debugging으로 PHP 5.2.14를 실행하고 있습니다. 1GB의 RAM이 있습니다. Apache, MySQL 및 FileZilla가 설치된 XAMPP가 설치되어 있습니다.
XAMPP에서 다음을 수행했습니다 (이 변경 중에 Apache가 꺼져 있음). XAMPP 제어판 에서 관리자 를 클릭 하고로 이동했습니다 https:// localhost/xampp/
. 거기에서 나는 환영 페이지 의이 줄의 인증서를 수락했습니다.
OpenSSL 지원을 위해서는 https : // 127.0.0.1 또는 https : // localhost와 함께 테스트 인증서를 사용하십시오.
같은 섹션에서 확인했습니다 phpinfo()
. '환경'에서 SERVER["HTTPS"]
입니다 on
. 'Apache Environment'에서 HTTPS
입니다 On
. 'PHP 변수 아래에서 _SERVER["HTTPS"]
입니다 On
. '의 Phar'에서 OpenSSL support
한다 disabled
(내선 / openssl을 설치). Phar를 활성화하는 방법을 모르겠습니다.
이제 C : \ xampp의 파일 자체에 관해 PHP 폴더로갔습니다. (죄송합니다보다 안전한) 모두 생산 및 개발의 php.ini 파일에서, 내가 가진 allow_url_fopen=On
, allow_url_include=On
그리고 그 때문에 나는, 세미콜론을 제거되지 extension=php_openssl.dll
더 이상 주석. 심지어 .dll이 PHP 폴더의 ext 폴더에 있음을 확인했습니다. libeay32.dll 및 ssleay32.dll은 모두 PHP 및 Apache 폴더에 있습니다. Apache 폴더에는 생산적이거나 개발적인 php.ini 파일이 없습니다.
안전한 측정 을 위해 http://www.slproweb.com/products/Win32OpenSSL.html로 이동 하여 Win32 OpenSSL v1.0.0d를 설치했습니다.
이제 retrieve_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);
Eclipse에서 PHP 스크립트로 실행하면 모든 결과가 다음과 같이 원하는 방식으로 완벽하게 출력됩니다.
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를 시작한 후) http : //localhost/tutorial/retrieve_website.php 를 통해 Eclipse 및 Firefox에서 PHP 스크립트에 처음 액세스 할 때 여전히 동일한 오류가 발생 합니다 .
경고 : file_get_contents () [function.file-get-contents] : 래퍼 "https"를 찾을 수 없습니다. PHP를 구성 할 때 활성화하는 것을 잊었습니까? C : \ xampp \ htdocs \ tutorial \ retrieve_website.php 29 행
경고 : file_get_contents (https : // www.googleapis.com/customsearch/v1?key= 제거 된 API ID & cx = 제거 된 검색 ID & q = The + Devil + went + down + to + Georgia & alt = atom & num = 5) [function.file-get-contents] : 스트림을 열지 못했습니다 : 29 행의 C : \ xampp \ htdocs \ tutorial \ retrieve_website.php에 해당 파일 또는 디렉토리가 없습니다.
경고 : DOMDocument :: loadXML () [domdocument.loadxml] : 33 행의 C : \ xampp \ htdocs \ tutorial \ retrieve_website.php에 입력으로 제공된 빈 문자열
openssl : 아니요 http 래퍼 : 예 https 래퍼 : 아니요 래퍼 : array (10) {[0] => string (3) "php"[1] => string (4) "file"[2] => string (4 ) "글로브"[3] => 문자열 (4) "데이터"[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
, 나는 휴대용 라이트 1.8.1 XAMPP에서 찾을 수없는 이유는 무엇입니까? 그러나php/php.ini
존재하지만 여기에서 ssl을 활성화하면 도움이되지 않습니다 :(