2015-06-25 9 views
13

Nachdem ich die Schritte von here bereits ausgeführt habe, habe ich immer noch Unsupported Protocol, wenn ich die Option curl --http2 verwende. Entsprechend führt die Einstellung CURLOPT_HTTP_VERSION zu CURL_HTTP_VERSION_2_0 dazu, dass das Programm über HTTP/1.1 und nicht über HTTP/2 kommuniziert.HTTP2 mit CURL gibt "Nicht unterstütztes Protokoll"

Plattform: Ubuntu 15.04 auf VMware Player 7.

Ich habe mit --prefix=/usr/local installiert nghttp2-1.0.4, daher der libnghttp2 * in /usr/local/lib entfernt..

Dies ist der Code curl-7.43.0 zu konfigurieren:

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

Das Ergebnis zeigt, dass HTTP2 aktiviert ist:

HTTP2 support: enabled (nghttp2) 

Nach make und sudo make install, die folgenden Renditen Unsupported Protocol:

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

Die curl Version zeigt nicht nghttp2 unterstützt wird:

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 

Dann folgte ich der Beratung von here, dass ich OpenSSL 1.0.2 oder höher haben müssen.

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

Nach make und sudo make install bleiben alle Probleme gleich: Nachdem in/opt/openssl, ich rekonfiguriert installiert, dass. Merkwürdigerweise gibt die curl --version immer noch die gleichen Informationen wie oben, mit OpenSSL/1.0.1f noch nicht aktualisiert.

Jede Hilfe, die mir erfolgreich verwenden, um die --http2 Option ermöglicht es sehr zu schätzen.

Antwort

4

Anscheinend sind Sie nicht mit der richtigen Version von curl verbindet, zumindest zur Laufzeit. Das ist es, was die Ausgabe libcurl/7.38.0 bedeutet. Meine hat dort eine höhere Versionsnummer. Versuchen Sie

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

als Ihr Befehl. Oder nur um sicher zu sein:

ldd `which curl` 

und achten Sie auf die aufgeführten Abhängigkeiten.

+1

Der zweite Befehl zeigt oben, dass ich immer noch das Standard-Bibliothek/lib/i386-liux-Gnu bin mit. Wenn Sie den Bibliothekspfad als ersten Code festlegen, wurde das Problem behoben. Curl spricht jetzt http2. Vielen Dank! – Curioso

+0

Als das, was empfohlen wurde [hier] (http://stackoverflow.com/questions/12636536/install-curl-with-openssl), Befehl 'sudo' vor'./Configure'. Ohne 'sudo' funktionierte meins nicht. – Curioso

+0

Ich habe immer noch Probleme. ~~~~ autoreconf -i auto autoconf sudo configure prefix =/usr/local sudo make sudo LD_LIBRARY_PATH =/usr/local/lib curl --http2 http installieren machen: // google.com curl: (1) Nicht unterstütztes Protokoll ~~~~ – user1928764

Verwandte Themen