已经按照here的步骤,当使用curl Unsupported Protocol
选项时,我仍然有--http2
。类似地,将CURLOPT_HTTP_VERSION
设置为CURL_HTTP_VERSION_2_0
会导致程序使用HTTP / 1.1进行通信,而不是HTTP / 2。
平台:VMware Player 7上的Ubuntu 15.04。
我用--prefix=/usr/local
安装了nghttp2-1.0.4,因此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`
并注意列出的依赖项。
这个真的可以帮我正确设置它