PHP错误:“zip扩展和解压缩命令都丢失,跳过。”

时间:2016-12-22 02:13:27

标签: php composer-php

当我运行composer update时,收到以下错误消息:

Loading composer repositories with package information
Updating dependencies (including require-dev)
    Failed to download psr/log from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini
    Now trying to download from source

启用zip和unzip命令需要做什么才能让作曲家下载依赖项?

13 个答案:

答案 0 :(得分:231)

根据您的Linux和PHP版本的不同,这些可能会有所不同。

(sudo) yum install zip unzip php7.0-zip
(sudo) apt install zip unzip php7.0-zip

这是一个非常常见的问题,您可以通过搜索<distro> php <version> zip extension在以太网中找到更多有用的信息。

答案 1 :(得分:36)

对于PHP 5.6的服务器

sudo apt-get install zip unzip php5.6-zip

答案 2 :(得分:20)

对于Debian Jessie(这是Docker Hub上PHP图像的当前默认值):

apt-get install --yes zip unzip php-pclzip

你可以省略--yes,但是当你在Dockerfile中运行它时它很有用。

答案 3 :(得分:19)

对于较旧的Ubuntu发行版,即16.04,14.04,12.04等

sudo apt-get install zip unzip php7.0-zip

答案 4 :(得分:10)

我在Ubuntu 16.04服务器上安装了PHP7.2,它解决了我的问题:

sudo apt-get install zip unzip php-zip

<强>更新

尝试使用Ubuntu 18.04并且也可以使用。

答案 5 :(得分:10)

不要太着急了,但是如果您使用的是Dockerfile,则可以通过安装unzip实用程序来解决Composer的这一特定问题。以下是使用official PHP image安装unzipzip PHP扩展以达到良好效果的示例。

FROM php:7.4-apache

# Install Composer
COPY --from=composer /usr/bin/composer /usr/bin/composer

# Install unzip utility and libs needed by zip PHP extension 
RUN apt-get update && apt-get install -y \
    zlib1g-dev \
    libzip-dev \
    unzip
RUN docker-php-ext-install zip

This is a helpful GitHub issue,上面的内容被完美地提出了。

答案 6 :(得分:4)

我正在使用Ubuntu并使用以下命令

apt-get install --yes zip unzip

答案 7 :(得分:3)

如果您使用 Ubuntu和PHP 7.2 ,请使用此...

sudo apt-get update
sudo apt-get install zip unzip php7.2-zip

答案 8 :(得分:2)

在镜像为php:7.2-apache的docker上,我只需要压缩和解压缩。不需要php-zip:

apt-get install zip unzip

或Dockerfile

RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "zip"]
RUN ["apt-get", "install", "-y", "unzip"]

答案 9 :(得分:1)

当我在digitalocean云服务器(Ubuntu 18.04和PHP 7.2)上安装Laravel 5.5并通过以下命令对其进行修复时,出现此错误。

  

sudo apt install zip unzip php7.2-zip

答案 10 :(得分:1)

Debian Ubuntu 上进行修复的最短命令(依赖项将自动安装):

sudo apt install php-zip

答案 11 :(得分:1)

PHP-ZIP需要一些依赖项或库,取决于Dockerfile中的映像,您需要先安装它们

RUN set -eux \
   && apt-get update \
   && apt-get install -y libzip-dev zlib1g-dev \
   && docker-php-ext-install zip

答案 12 :(得分:0)

当今实际上,作曲家似乎无需使用zip命令行命令即可工作,因此安装php-zip应该足够---但它会显示警告:

  

由于没有安装“ unzip”命令,因此正在使用   PHP zip扩展名。   这可能会导致无效的存档报告。安装“ unzip”可能   修复它们。

另请参阅Is there a problem with using php-zip (composer warns about it)