Composer 要求 ext-zip 失败

问题描述 投票:0回答:5

PHPStorm 告诉我,我需要作曲家 require ext-zip,但是,该命令失败了......

PHPStorm 说

我发出的命令是

composer require ext-zip

结果

Your requirements could not be resolved to an installable set of packages.

Installation failed, reverting ./composer.json to its original content.
php composer-php phpstorm
5个回答
41
投票

解决方案#1 - 将 ext-zip 添加到composer.json 的所需部分:

{
    "require" : {
        "ext-zip": "*"
    }
}

解决方案#2 - 安装 php-zip 扩展:

Windows:

在 php.ini 中取消注释此行

;扩展名=php_zip.dll

Linux:

sudo apt-get install php-zip

sudo apt-get install php7.0-zip(确保您输入了您的 php 版本,您可以通过执行 php -v 命令检查您的版本)

然后,您需要重新启动网络服务器。

sudo 服务 apache2 重新启动


10
投票

给定的提示来自 PhpStorm,而不是来自 Composer 本身:您的 IDE 已检测到您的代码使用了仅在启用 ZIP 扩展时才可用的方法(或在本例中:

ZipArchive
类)。但到目前为止,您的
composer.json
不包含该要求。

因此,PhpStorm 要求您将此要求添加到 JSON 文件中,以使运行代码的要求更加精确。如何解决该要求取决于您:最好的方法是安装该扩展,但这超出了作曲家的范围


10
投票

如果您的代码运行正常 - 您已经在计算机上安装了 zip 扩展名。 PHPStorm 添加此建议是为了确保项目部署的其他任何地方也具有正确的扩展。

在您的composer.json文件(

require
块)中手动添加该行
"ext-zip": "*",
(以及它可以建议的其他行,例如
ext-apc
ext-redis
ext-json
,以及您可能建议的任何其他行)正在使用)将确保当您部署它时,作曲家还可以检查是否安装了适当的额外项目。

这只是一个警告,您可以忽略它 - 或者您可以允许 Composer 确保您的服务器已设置,因为它们需要运行您的代码并使用 zip 文件执行操作。如果您的服务器没有安装 ext-zip,

composer install
会抱怨,并在稍后发现代码在没有 zip 扩展名的情况下失败等情况下停止保存问题。


3
投票

在 Windows 中这行

;extension=php_zip.dll

已更改为

;extension=zip

所以请务必取消注释

extension=zip

0
投票

如果有效的话,为你加油!!!

© www.soinside.com 2019 - 2024. All rights reserved.