問題は問題です。私はこれに関して解決策を徹底的に調査しましたが、これにはトピックがあり、私もそれらに従ってきましたが、何もうまくいきませんでした。そうは言っても、これまでに行ったすべてを正確にリストアップします。私のWindows XPコンピューターの最新のEclipseバージョンでZend Debuggingを使用してPHP 5.2.14を実行しています。1 GBの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
(ext / 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);
クエリを実行する他の2つのWebサイトがありますが、それらは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 + going + down + to + Georgia&alt = atom&num = 5)[function.file-get-contents]:ストリームを開けませんでした:C:\ xampp \ htdocs \ tutorial \ retrieve_website.phpの29行目でそのようなファイルまたはディレクトリはありません
警告: DOMDocument :: loadXML()[domdocument.loadxml]:C:\ xampp \ htdocs \ tutorial \ retrieve_website.phpの33行目の入力として空の文字列が指定されています
openssl:いいえhttpラッパー:はいhttpsラッパー:いいえラッパー:いいえ(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 "}
私が見落としたり、失敗したことは何ですか?私の知る限り、私はHTTPSとOpenSSLに関して調査したすべてのことを行いました
/apache/bin/php.ini
、私はXAMPPポータブルライト1.8.1でそれを見つけることができませんか?しかしphp/php.ini
存在するが、ここでは、SSLを有効にすると、ヘルプ:(ません