更新的cURL在PHP中不起作用

我有一个基于官方PHP Docker镜像的 Docker应用程序。

我已经扩展它来更新cURL并使用nghttp2openssl ,这是我的应用程序需要HTTP / 2支持。

但是,PHP本身并没有反映这个变化,我不知道为什么。

这是我的Dockerfile:

 FROM php:7.0.3-fpm # Add sources that allow installation of unstable packages (needed for latest OpenSSL/cURL versions). RUN echo 'deb http://ftp.uk.debian.org/debian testing main contrib \n\ deb-src http://ftp.uk.debian.org/debian testing main contrib \n\ deb http://ftp.debian.org/debian/ jessie-updates main contrib \n\ deb-src http://ftp.debian.org/debian/ jessie-updates main contrib \n\ deb http://security.debian.org/ jessie/updates main contrib \n\ deb-src http://security.debian.org/ jessie/updates main contrib' > /etc/apt/sources.list \ && apt-get update # Install OpenSSL, nghttp2 and cURL (required to make HTTP/2 requests). RUN apt-get install -y openssl nghttp2 curl # Install other dependencies. RUN apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ && docker-php-ext-install pdo_mysql mbstring sockets zip bcmath \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install gd # Copy custom PHP.ini COPY php.ini /usr/local/etc/php/ # Run php-fpm. CMD ["php-fpm"] 

curl --version输出:

 curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.9 zlib/1.2.8 libidn/1.29 libssh2/1.4.3 nghttp2/1.7.1 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets 

openssl version输出:

 OpenSSL 1.0.2f 28 Jan 2016 

但是, php -i输出:

 curl cURL support => enabled cURL Information => 7.38.0 Age => 3 Features AsynchDNS => Yes CharConv => No Debug => No GSS-Negotiate => No IDN => Yes IPv6 => Yes krb4 => No Largefile => Yes libz => Yes NTLM => Yes NTLMWB => Yes SPNEGO => Yes SSL => Yes SSPI => No TLS-SRP => Yes HTTP2 => No GSSAPI => Yes Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, scp, sftp, smtp, smtps, telnet, tftp Host => x86_64-pc-linux-gnu SSL Version => OpenSSL/1.0.1k ZLib Version => 1.2.8 libSSH Version => libssh2/1.4.3 

请注意, cURL Information显示错误的卷发版本号, HTTP2被标记为no

任何关于如何让PHP来接这个build议将不胜感激!

对于将来有人想知道这件事,我终于find了一个办法。 我基本上基于官方的PHP创build了自己的Docker镜像,它在编译之前下载了较新版本的cURL。

它在Docker集线器上可用(对于通过FPM运行的PHP 7,至less)。