ここ の手順をすでに実行しているので、curl Unsupported Protocol
オプションを使用するときに--http2
がまだあります。同様に、CURLOPT_HTTP_VERSION
をCURL_HTTP_VERSION_2_0
に設定すると、プログラムはHTTP/2ではなくHTTP/1.1を使用して通信します。
プラットフォーム:VMware Player 7上のUbuntu 15.04。
Nghttp2-1.0.4を--prefix=/usr/local
とともにインストールしたため、libnghttp2。*は/usr/local/lib
にあります。
これはcurl-7.43.0を構成するコードです。
./configure --with-nghttp2=/usr/local
結果は、HTTP2が有効になっていることを示しています。
HTTP2 support: enabled (nghttp2)
make
およびSudo make install
の後、次のコードはUnsupported Protocol
を返します。
curl --http2 https://http2.akamai.com
Curlバージョンはnghttp2がサポートされていることを示していません:
curl 7.43.0 (i686-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP
次に here からのアドバイスに従って、OpenSSL 1.0.2以降が必要です。/opt/opensslにインストールしたら、再構成しました。
./configure --with-nghttp2=/usr/local --with-ssl=/opt/openssl/lib
make
およびSudo make install
以降、すべての問題は同じままです。不思議なことに、curl --version
はOpenSSL/1.0.1fがまだアップグレードされていないため、上記と同じ情報を返します。
--http2
オプションを正常に使用できるようにするためのヘルプは、大歓迎です。
どうやら、少なくとも実行時には、正しいバージョンのcurlにリンクしていません。これが出力libcurl/7.38.0の意味です。鉱山の方がバージョン番号が高い。試す
LD_LIBRARY_PATH=/usr/local/lib curl <whatever>
あなたのコマンドとして。または、念のため:
ldd `which curl`
リストに表示される依存関係に注意してください。
curl 7.53.1 for Windows このツールは、http2リクエストをテストするのに非常に便利です。 OpenSSL、ngttp2、zlibとIPv6のサポートで構築されたWindows用のcurlのコンパイル済みビルドがあります。
これは本当に私が正しく設定するのに役立ちます
Sudo make install