2015-06-25 15 views
13

Avendo già seguito i passaggi da here, ho ancora Unsupported Protocol quando si utilizza l'opzione arricciatura --http2. Allo stesso modo, l'impostazione di CURLOPT_HTTP_VERSION su CURL_HTTP_VERSION_2_0 genera il programma che comunica utilizzando HTTP/1.1, non HTTP/2.HTTP2 con CURL fornisce "Protocollo non supportato"

Piattaforma: Ubuntu 15.04 su VMware Player 7.

ho installato nghttp2-1.0.4 con --prefix=/usr/local, da qui il libnghttp2 * si trova in /usr/local/lib..

Questo è il codice per configurare curl-7.43.0:

./configure --with-nghttp2=/usr/local 

Il risultato dimostra che HTTP2 è abilitato:

HTTP2 support: enabled (nghttp2) 

Dopo make e sudo make install, i seguenti rendimenti: Unsupported Protocol

curl --http2 https://http2.akamai.com 

La versione arricciata non mostra nghttp2 è supportato:

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 

Poi ho seguito i consigli da here, che ho bisogno di avere OpenSSL 1.0.2 o superiore. Dopo aver installato che in/opt/OpenSSL, ho riconfigurato:

./configure --with-nghttp2=/usr/local --with-ssl=/opt/openssl/lib 

Dopo make e sudo make install, tutti i problemi rimangono gli stessi. Stranamente, lo curl --version restituisce ancora le stesse informazioni di cui sopra, con OpenSSL/1.0.1f non ancora aggiornato.

Qualsiasi aiuto che mi permetta di usare con successo l'opzione --http2 è molto apprezzato.

risposta

4

Apparentemente non si sta collegando con la versione corretta di curl, almeno in fase di esecuzione. Questo è ciò che significa l'output libcurl/7.38.0. Il mio ha un numero di versione più alto lì. Prova

LD_LIBRARY_PATH=/usr/local/lib curl <whatever> 

come comando. O semplicemente per essere sicuri:

ldd `which curl` 

e prestare attenzione alle dipendenze visualizzate.

+1

Il secondo comando sopra mostra che sto ancora usando la libreria predefinita/lib/i386-liux-gnu. L'impostazione del percorso della libreria come primo codice sopra ha risolto il problema. Curl ora sta parlando http2. Grazie! – Curioso

+0

Come consigliato [qui] (http://stackoverflow.com/questions/12636536/install-curl-with-openssl), comando 'sudo' prima di'./Configure'. Senza 'sudo', il mio non ha funzionato. – Curioso

+0

Ho ancora problemi. ~~~~ autoreconf -i automake autoconf sudo ./configure --prefix =/usr/local sudo make sudo make install LD_LIBRARY_PATH =/usr/local/lib ricciolo --http2 http: // google.com arricciatura: (1) Protocollo non supportato ~~~~ – user1928764