래퍼 "https"를 찾을 수 없습니다. PHP 구성 시 래퍼 "https"를 사용하도록 설정하지 않았습니까?
문제는 그 문제에 있다.이에 대한 해결책을 철저히 조사했고, 이에 대한 주제가 있다는 것을 알고 있으며, 저도 그것들을 추적해봤지만 효과가 있는 것은 아무것도 없었습니다.그 말은 내가 지금까지 한 모든 것을 정확히 나열하겠다는 것이다.Windows XP 컴퓨터에서 최신 Eclipse 버전에서 Zend 디버깅을 사용하여 PHP 5.2.14를 실행하고 있습니다.1GB의 RAM이 있습니다.Apache, MySQL 및 FileZilla를 사용하여 XAMPP를 실행하고 있습니다.
XAMPP에서는 다음 작업을 수행했습니다(이러한 변경 중에는 Apache가 꺼졌습니다).XAMPP 제어판에서 [Admin](관리자)를 클릭하여 다음 페이지로 이동.https:// localhost/xampp/
거기서부터, 나는 환영 페이지의 이 행의 증명서를 받아들였습니다.
OpenSSL을 지원하려면 https:// 127.0.0.1 또는 https:// localhost와 함께 테스트 인증서를 사용하십시오.
에서 나는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」phpinfo()
'에서 '환경'은SERVER["HTTPS"]
on
[ Environment . [ Apache Environment ]를 선택합니다.HTTPS
On
'Variables'에서 'PHP Variables'를 선택합니다._SERVER["HTTPS"]
On
밑에 'Phar'가 있어요.OpenSSL support
disabled
(install ext/install sl).첫 번째 단계입니다.
C:\xampp는 PHP를 사용합니다. 파일과 php.한 것이 낫다) 에는 php.ini 파일이 있습니다.allow_url_fopen=On
,allow_url_include=On
세미콜론을 해서 '세미콜론'을 삭제했습니다extension=php_openssl.dll
는 코멘트 아웃되지 않게 되었습니다.PHP ext .dll 입니다.은 모두 및 폴더libeay32.dll ssleay32.dll에 .Apache productive 개발 php.ini.
안전한 측정을 위해 http://www.slproweb.com/products/Win32OpenSSL.html에 접속하여 Win32 OpenSSL v1.0.0d를 설치했습니다.
이제 my 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를 시작한 후) 이러한 모든 변경에도 불구하고 Eclipse 및 Firefox에서 http://localhost/tutorial/retrieve_website.php를 통해 PHP 스크립트에 처음 액세스할 때 동일한 오류가 발생합니다.
고 : file _ get _ contents ( [ ]] ] - get -contents ] ::file - get - filename wrapper wrapper wrapper the the the the the the the the the the the the the the " " " " " " " the the the the the the the the the the the " " " " " " " " " " " the " " " " " " " " " " " https수\htdocs\htdocs\hts래퍼 "https"를 찾을 수 없습니다.C:\xampp\htdocs\tutorial\retrieve_website: PHP "https" "회선2929"의 "
경고: file_get_num (http:// www.googleapis.com/customsearch/v1?key=removed API ID & cx = 검색 ID &q = The + Devil + went + down + to + Georgia & alt = atom & num = 5 )[ function ]file-get-filename]: 스트림을 열지 못했습니다.C:\xampp\htdocs\tutorial\retrieve_website에는 이러한 파일 또는 디렉토리가 없습니다.29행의 php
경 : DOMDocument : : loadXML ( )[ dom document . loadxml ] :C:\xampp\htdocs\tutorial\retrieve_website 회선 3333의
Openssl: 없https 래퍼를 받지 않아요. https 래퍼: 래퍼 없음: array(10) {[0]=> string(3) "file" [2]=> string(4) "data" [4]=> string(4) "data" [5]=> string(3)
내가 간과했거나 하지 못한 것은 무엇인가?제가 아는 바로는 HTTPS와 OpenSSL에 관해 제가 조사한 모든 것을 했습니다.
에서 XAMPP의 코멘트를 했습니다.;extension=php_openssl.dll
/apache/bin/php.ini
phpinfo()가 말해줬지만/php/php.ini
인이 인니 인니 인니 인니 인니 인니 인니 인니 인니
편집: 적절한 ini 파일에 확장자를 직접 추가하는 것이 Ezra의 답변이라고 생각합니다.
수 추가했다extension=php_openssl.dll
나 my my myphp.ini
「 」에 xampp/php/php.ini
이 정상적으로. Apache를 추가하고 재시작한 후, 어쩐지 모든 것이 정상적으로 동작하고 있었습니다.
php.ini 파일에 두 줄만 추가합니다.
extension=php_openssl.dll
allow_url_include = On
나한테는 효과가 있어요.
Apache는 SSL을 지원하지 않을 수 있습니다.file_get_contents 대신 cURL을 사용합니다.이 코드를 사용해 보세요. 실패하면 제가 옳습니다.
function curl_get_contents($url)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
openssl 확장이 유효하게 되어 있어, 기능합니다. : )
;syslog=syslogsl.syslogs
로.
extension=sysl.sysl.syslog
모드의 3는가 없습니다.extension=openssl
. extension=snot_snotsl(대부분의 사람들이 여기에 투고하고 있는 것처럼)이 아닙니다.
(이쪽에도 같은 내용이 게재되어 있습니다만, OS에 대한 자세한 내용은 기재되어 있지 않은 것이 주요 차이점일 수 있습니다.)
Windows cli php cli 、 composer windows를를 。문제를 하려면 확장자 .php.ini
줄의
; On windows:
extension_dir = "ext"
그리고 이것과 모든 것이 효과가 있었다.
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;...
extension=openssl
이 문제는 Apache와 다른 php.ini를 CLI에 사용하는 WAMP에 의한 것이므로 WAMP 메뉴에서 설정한 설정은 CLI에 적용되지 않습니다.CLI php.ini만 수정하면 됩니다.
OpenSuse 12.1에서 필요한 것은 다음과 같습니다.
zypper in php5-openssl
MAC AMPPS에서는 다음과 같이 php-5.5.ini를 업데이트하여 동작하게 되었습니다.
allow_url_include = On
extension=openssl.so
php에서 PHP7의 php.ini 앞에 있는 합니다.extension=openssl
저는 php.ini에서 다음 행의 코멘트를 해제해야 했습니다.
extension=php_openssl.dll
extension_dir = "ext"
"ext"는 "ext" 폴더에 php_sl.dll이 있는 경우 적용됩니다.
주의: 2개의 php.ini 파일에 대해 이 작업을 수행해야 합니다.그렇지 않으면 동작하지 않습니다.하나는 vs.php 설치 폴더에 있고 다른 하나는 PHP 폴더에 있습니다.
C:\Program Files (x86)\Jcx.Software\VS.Php\2013\Php 5.6
C:\Program Files (x86)\PHP\v5.6
Windows에서 https 요청에 대한 file_get_contents에 문제가 있습니다.php.ini 파일의 다음 행을 주석 해제합니다.
extension=php_openssl.dll
extension_dir = "ext"
Windows 의 PHP 의 새로운 버전에서는, 대응하는 설정 행이 변경되었기 때문에, 대부분의 회답은 기능하지 않습니다.
7 의 코멘트를 (PHP 7.x 의 , PHP 의 삭제).;
을 사용법을 배우다
extension_dir = "ext"
extension=openssl
시스템에 컬이 설치되어 있는 경우 대신 이 기능을 사용할 수 있습니다.
function get_url_contents($url){
if (function_exists('file_get_contents')) {
$result = @file_get_contents($url);
}
if ($result == '') {
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
}
return $result;
}
하루 종일 기웃거리다가 이 가이드로 답을 알아냈다.http://piwigo.org/forum/viewtopic.php?id=15727
기본적으로 Eclipse -> Windows -> Preferences -> PHP 실행 파일 아래에 .exe 및 .ini가 참조되는 섹션이 있습니다.기본 설정은 도움말 메뉴의 Eclipse Install New Software에서 PHP Development Tools SDK Feature를 설치할 때 Eclipse 디렉토리에 있습니다.
그 대신 PHP 5.3.5(CGI)라는 새로운 실행 파일을 추가하고 cgi를 참조했습니다.xampp의 php 폴더에서 exe 및 .ini를 찾을 수 있습니다.
시간을 내주셔서 감사합니다.
opsen을 사용하고 있습니다.SUSE Leap과 같은 문제가 있었습니다.즉, OpenSSL은 지원되지 않습니다.해결 방법은 다음과 같습니다.
- YaST를 엽니다.
- 소프트웨어 관리로 이동합니다.
- 왼쪽 페인에 있는 검색 상자에 'php5-opensl'을 입력하고 리턴 키를 누릅니다.
- 오른쪽 페인의 'php5-opensl' 옆에 있는 확인란을 클릭하여 선택하고 'Accept'를 클릭합니다(이렇게 하면 OpenSSL 지원이 추가됩니다).
- Apache 시시 :
sudo service apache2 restart
됐어, 넌 끝났어.
저도 이 에러가 났어요.내 버전의 PHP는 openssl을 컴파일하지 않았기 때문에 단순히 확장 디렉티브를 php.ini에 추가하는 것만으로는 충분하지 않았습니다.이 문제를 어떻게 해결해야 할지 모르겠지만, 저는 macports를 사용하고 있습니다.명령어는 다음과 같습니다.
sudo port install php5-openssl
Winginx(Apache 베이스가 아닌 nginx 베이스)를 사용하는 분들을 위해 다음 4단계로 수정했습니다.
도구 메뉴에서 Winginx PHP5 Config를 누릅니다(이름의 5는 상관없습니다).):
php.ini를 변경할 PHP 버전을 선택합니다.
[ PHP Extensions ]탭에서 php_opensl 확장을 선택하고 [Save]버튼을 클릭합니다.
태스크바에서 적절한 PHP 서비스를 재시작합니다(Stop and Start).
wamp 서버를 사용하는 경우 아이콘을 클릭합니다.
그런 다음 PHP로 이동하여 PHP 확장을 클릭하면 php_opensl이 활성화되고 wamp 서버를 재시작해야 합니다.
simple_html_dom 내부.php 값을 변경합니다.$offset
로 하다-1
로로 합니다.0
이 오류는 보통 PHP 7로 이행할 때 발생합니다.
HtmlDomParser::file_get_html
인 "Default Offset" 을 합니다.-1
, " "0
문제를 해결할 수 있습니다.
언급URL : https://stackoverflow.com/questions/5444249/unable-to-find-the-wrapper-https-did-you-forget-to-enable-it-when-you-config
'programing' 카테고리의 다른 글
데이터 없는 MySql 내보내기 스키마 (0) | 2022.10.02 |
---|---|
Js가 현재 달의 첫 번째와 마지막 날을 얻는 순간 (0) | 2022.10.02 |
공유 테이블 구조를 가진 멀티 테넌트(Multi-tenant) 데이터베이스를 작성하려면 어떻게 해야 합니까? (0) | 2022.10.02 |
"new" 연산자를 사용하여 개체를 만들 때 괄호를 생략할 수 있습니까? (0) | 2022.10.02 |
JavaScript에서 var가 문자열인지 확인하려면 어떻게 해야 합니까? (0) | 2022.10.02 |