当我运行一个作曲器更新时,我得到这个错误消息:

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命令,以便编写器可以下载依赖项?


当前回答

在docker上使用image php:7.2-apache,我只需要zip和unzip。不需要php-zip:

安装zip解压

或 Dockerfile

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

其他回答

如果您使用的是像XAMPP这样的本地开发环境,只需找到php.ini文件(在我的例子中是C:\ XAMPP \php),打开它并从下面的行中删除分号。

;extension=zip

重新启动Apache web服务器,它将正常工作。

如果你使用Ubuntu和PHP 7.2,使用这个…

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

在docker上使用image php:7.2-apache,我只需要zip和unzip。不需要php-zip:

安装zip解压

或 Dockerfile

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

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

sudo apt install php-zip

当我在digitalocean云服务器(Ubuntu 18.04和PHP 7.2)上安装Laravel 5.5时,我得到了这个错误,下面的命令修复了它。

Sudo apt安装解压php7.2-zip