当我运行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命令需要做什么才能让作曲家下载依赖项?
答案 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安装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
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)