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

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


当前回答

我不想赘述这一点,但如果您在Dockerfile中工作,您可以通过安装unzip实用程序来解决Composer的这个特殊问题。下面是一个使用官方PHP映像安装unzip和zip 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

这是一个很有用的GitHub问题,上面的内容是可爱的。

其他回答

PHP-ZIP需要一些依赖项或库缺失,这取决于你需要先安装Dockerfile中的镜像

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

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

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

请先检查你的作曲状态

composer diagnose 

如果状态显示

zip: extension not found, unzip not available, 7-Zip not available

then

打开XAMPP服务器 >点击“PHP(PHP .ini)” 找到“zip” extension = zip将显示 删除分号并保存文件 重新启动XAMPP Apache

Now

composer create-project laravel/laravel <<project_name>>

or

laravel new <<project_name>>

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

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

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

我不想赘述这一点,但如果您在Dockerfile中工作,您可以通过安装unzip实用程序来解决Composer的这个特殊问题。下面是一个使用官方PHP映像安装unzip和zip 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

这是一个很有用的GitHub问题,上面的内容是可爱的。