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

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


当前回答

安装zip 我正在运行一个docker容器,这帮助了我 Docker-compose exec app apt-get install zip

其他回答

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

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

在PHP 7.4中试试这个:

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

对于PHP 8.0:

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

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

;extension=zip

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

安装zip 我正在运行一个docker容器,这帮助了我 Docker-compose exec app apt-get install zip

实际上,现在的composer似乎不需要zip命令行命令就可以工作,所以安装php-zip应该就足够了——但是它会显示一个警告:

由于没有“unzip”命令,安装的zip文件正在使用 PHP压缩扩展。 这可能导致已损坏档案的无效报告。安装“unzip”可能 纠正他们。

参见使用php-zip是否有问题(作曲家对此发出警告)