php - 使用 PHP zip 扩展构建的 Docker 镜像显示 "bundled libzip is deprecated"警告

标签 php docker php-extension libzip

我有一个 Dockerfile 带有这样的构建命令:

#install some base extensions
RUN apt-get install -y \
        zlib1g-dev \
        zip \
  && docker-php-ext-install zip

我从构建输出中收到此警告:

WARNING: Use of bundled libzip is deprecated and will be removed.
configure: WARNING: Some features such as encryption and bzip2 are not available.
configure: WARNING: Use system library and --with-libzip is recommended.

在没有这些警告的情况下安装 zip 扩展的正确方法是什么?

我的完整 Dockerfile 看起来像:

FROM php:7.2-apache

RUN apt-get clean
RUN apt-get update

#install some basic tools
RUN apt-get install -y \
        git \
        tree \
        vim \
        wget \
        subversion

#install some base extensions
RUN apt-get install -y \
        zlib1g-dev \
        zip \
  && docker-php-ext-install zip

#setup composer
RUN curl -sS https://getcomposer.org/installer | php \
        && mv composer.phar /usr/local/bin/ \
        && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer


WORKDIR /var/www/

最佳答案

looks like PHP 不再捆绑 libzip .您需要 install it .您安装 zlib1g-dev,而是安装 libzip-dev。这会将 zlib1g-dev 安装为依赖项,并允许 configure 脚本检测是否安装了 libzip

对于 PHP < 7.3,您需要

docker-php-ext-configure zip --with-libzip

在执行安装之前

docker-php-ext-install zip

如最后的警告所示。

简而言之:将 Dockerfile 的相关部分更改为

适用于 PHP < 7.3

#install some base extensions
RUN apt-get install -y \
        libzip-dev \
        zip \
  && docker-php-ext-configure zip --with-libzip \
  && docker-php-ext-install zip

对于 PHP >= 7.3

#install some base extensions
RUN apt-get install -y \
        libzip-dev \
        zip \
  && docker-php-ext-install zip

我已经验证了它可以按预期构建。

 


 

如果您不使用 Docker PHP base image ,事情可能会容易得多。例如,对于 Alpine,以下 Dockerfile 将为您提供安装了 zip 扩展的 PHP 7。

FROM alpine:latest

RUN apk update && apk upgrade
RUN apk add php7 php7-zip composer

关于php - 使用 PHP zip 扩展构建的 Docker 镜像显示 "bundled libzip is deprecated"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48700453/

相关文章:

php - 如何在一个网页上播放多个声音文件? (点击最佳实践)

php - PHP MVC 应用程序中用于限制登录(或其他)请求的公认通用模式

php - 使用 Xampp 设置 Xdebug 时出错 (Windows 7) - 服务器证书不包含与服务器名称匹配的 ID

ruby-on-rails - Docker - 无法转发交互式 shell 的端口

spring - 了解微服务架构

c++ - 构建 php 扩展时 undefined reference

php - 动态创建的索引字段未随表单提交

javascript - 如何在客户端和服务器中正确使用 OpenTelemetry 导出器和 OpenTelemetry 收集器?

php - 无法在 Maverick OS X 上编译 php 扩展

php-extension - 如何升级 PHP 函数参数以使用新的 Zend API?