我正在使用centos 6.2,我需要在其中一个服务器请求中使用curl --http2.0,但是我看了7.19.6,看了http://curl.haxx.se/docs/manpage.html后给了我--http2.0只有curl 7.33.0支持选项,所以要解决这个问题,我按照http://www.linuxfromscratch.org/blfs/view/svn/basicnet/curl.html中的步骤安装了curl 7.33.0 安装curl之后,我试图使用它,但它仍然给我错误 curl(1):不支持的协议,我已经使用以下方法检查了我的卷曲版本: curl - 版本这给了我:
curl 7.33.0 (x86_64-unknown-linux-gnu) libcurl/7.33.0 OpenSSL/1.0.0 zlib/1.2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz
我需要使用这个--http2.0但是没有得到任何我能做到的事情吗? 由于curl 7.19已经安装并且我重新安装了更高版本的curl,这是否会出现问题?
答案 0 :(得分:5)
正如Daniel on the mailing list所解释的那样:
我的计划是将http2工作基于nghttp2库 (https://github.com/tatsuhiro-t/nghttp2)[...] HTTP2将作为libcurl术语中的“特性”开始,而不是作为单独的协议。
首先,您需要手动安装nghttp2 [1]。
然后,您需要在配置时使用--with-nghttp2
显式启用HTTP2支持:
./configure --with-nghttp2=/path/to/nghttp2/install/dir [...]
[1]:在编写本文时,README声明未打包在Ubuntu中,因此您需要自己构建。
修改强>
请在下面找到使用默认选项构建库(不是命令行工具)的基本说明。
要构建nghttp2,首先需要安装其要求(详见nghttp2 documentation page):
# To clone the nghttp2 Github repo
yum install git
# Build essentials
yum install gcc
yum install make
yum install automake
yum install libtool
# Required to build the library
yum install pkgconfig
yum install zlib-devel
完成克隆回购后:
git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
按照here所述构建库:
autoreconf -i
automake
autoconf
# Note: I assume you want to deploy it under /usr/local
# Feel free to adapt to your needs!
./configure --prefix=/usr/local
make
然后部署它:
make install
如果一切正常,则需要构建libcurl 7.33.0,注意使用./configure --with-nghttp2=/usr/local [...]
启用nghttp2。
<强>附加功能强>
如果您想另外构建应用程序(nghttp
,...),则必须在构建nghttp2之前安装其他软件包:
yum install openssl-devel
yum install libevent-devel
yum install libxml2-devel
yum install jansson-devel