为Mac安装ext-zip


54

我正在尝试运行composer update,但出现以下错误:

Problem 1
    - The requested PHP extension ext-zip * is missing from your system. Install or enable PHP's zip extension.
  Problem 2
    - maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.13 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.14 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.15 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.16 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.17 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.7 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.8 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.9 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.2.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.0 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.1 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.2 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.3 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.4 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.5 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.6 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - phpoffice/phpspreadsheet 1.9.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.7.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.6.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for maatwebsite/excel ^3.1.0 -> satisfiable by maatwebsite/excel[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.x-dev, 3.2.x-dev].

跑步时 composer update

一夜之间,我犯了我一生的错误,并允许我的Mac自动更新操作系统,所以我现在在macOS Catalina中。

我尝试添加

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

到我的composer.json ..,但没有下载该扩展名。


1
该错误仅表示您的PHP没有php-zip安装扩展名。
Latheesan

phpinfo有同样的问题,说它已经安装了……非常奇怪……谢谢苹果公司……
Jamie Robinson

@JamieRobinson请让我知道是否找到了解决方法!
阿卜杜勒

到目前为止,@ Abdul最好的是使用“ composer install --ignore-platform-reqs” ...这不是解决方案,但可以在短期内解决问题
Jamie Robinson

@JamieRobinson供您参考,有人回答了对我有用的东西。
阿卜杜勒

Answers:


127

将Mac更新到Catalina之后,我遇到了同样的问题。这对我有用。

brew update
brew install php@7.3
brew link php@7.3

然后重新加载控制台。

它将安装带有zip模块的php 7.3.10。您可以使用php -v检查版本,并使用php -m查看模块。


非常感谢你!就像一个魅力!
阿卜杜勒

2
@Aldranor觉得这几乎可行,运行brew install听起来不错。但是,现在出现“错误:无法符号链接sbin / php-fpm”“ / usr / local / sbin不可写。” ... brew也不会运行sudo ...任何想法吗?
杰米·罗宾逊

8
终于修好了!运行“ brew doctor”表示该文件夹不存在且不可写,并为您提供了要运行的命令。运行这些命令,再次运行link命令,重新加载控制台,一切恢复正常:)
Jamie Robinson

8
如果您看到以下警告“ php@7.3仅用于小桶,并且必须与--force链接”,请使用“ brew link --force php@7.3”
leeCoder

2
export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"
行得通


6

如果brew链接不适合您,请通过以下方式检查您安装的php版本:

ls /usr/local/opt/php*

在这里,您将看到这样的版本:

/usr/local/opt/php@7.3/bin:$PATH

应该给你这样的输出:

/usr/local/opt/php@7.3:
INSTALL_RECEIPT.json        include
LICENSE                     lib
NEWS                        pecl
README.md                   sbin
bin                         share
homebrew.mxcl.php@7.3.plist

现在,您只需要将其链接到您的$ PATH即可:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc

注意:我正在使用.zshrc,因为这是我的终端设置。如果您是bash,请相应地使用。

您可以通过运行以下命令检查哪个版本的php现在已链接到您的MacOS:

which php

这应该给您输出:

/usr/local/opt/php@7.3/bin/php

而已。现在,如果您尝试作曲家更新,它应该不会给您扩展问题。

来源(部分):https : //medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602


6

2020年3月10日,它为我工作:

brew install php  

这是有关PHP的唯一有效命令。因此,我认为不建议使用上一篇文章中显示的命令。


1
2020年3月24日确认
Frank Leal

2020年3月26日确认。
穆罕默德·阿里

4月7日,符合规范
PSN

2021年4月14日。
Pandem1c

4

我在使用python symlink时遇到问题brew install php

/usr/local/Frameworks 不存在,所以我必须创建它: sudo mkdir /usr/local/Frameworks

cd /usr/local/

然后我不得不把它塞住: sudo chown -R myuser:admin Frameworks

我将权限设置基于中的其余文件夹/usr/local

然后我可以跑步brew link python。然后我又跑brew install php了,它完成了。

php -v 现在给我php 7.3.10,我认为是php 7.3.18。


我会建议使用--->须藤乔敦- R的$(WHOAMI)仓等包括LIB sbin目录份额VAR框架<----而不是--->须藤乔敦- R的myuser的:管理框架<---
奔Spi

2

除了强制链接之外,您还可以在MacOS Catalina中解决问题

通过向您的bash配置文件添加php二进制路径,例如:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.3/sbinbin:$PATH"' >> ~/.bash_profile

2

如果不需要ext-zip(例如,您只想做一些快速修复),则可以使用--ignore-platform-reqsoption忽略要求:

$ composer update --ignore-platform-reqs


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.