我正在尝试运行作曲家更新,出现以下错误
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].
when running
作曲家更新`
一夜之间,我犯了我一生的错误,并允许我的Mac自动更新OS..so,现在我在macOS Catalina中。
我尝试添加
"require": {
"ext-zip": "*",}
到我的composer.json ..,但未下载该扩展名。.
我现在如何运行composer更新,将对您有所帮助。
答案 0 :(得分:63)
将Mac更新到Catalina之后,我遇到了同样的问题。这是对我有用的。
brew update
brew install php@7.3
brew link php@7.3
然后重新加载控制台。
它将安装带有zip模块的php 7.3.10。您可以使用php -v检查版本,并使用php -m查看模块。
答案 1 :(得分:19)
以下命令修复了macOS Catalina上的问题
brew link php@7.3 --force
答案 2 :(得分:15)
2020年3月10日,它对我有用:
brew install php
这是有关PHP的唯一一条有效命令。 因此,我认为不建议使用上一篇文章中显示的命令。
答案 3 :(得分:14)
如果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
答案 4 :(得分:6)
就像@ marc-alexander所说,这是一个不好的做法。如果不确定自己在做什么,则不应使用--ignore-platform-reqs
选项。
我认为该选项将忽略平台要求,并安装软件包的特定版本。但实际上,它将忽略平台要求,并安装软件包的最高可用版本。
因此,如果您需要缺少的PHP扩展名,则应该安装(或启用)
参考:ignore-platform-reqs installs dev-master instead of correct version
如果您不需要ext-zip
(例如,您只想做一些快速修复),则可以使用--ignore-platform-reqs
选项忽略要求:
$ composer update --ignore-platform-reqs
答案 5 :(得分:4)
在brew install php
期间,我遇到了python symlink问题。
/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。
答案 6 :(得分:4)
这对我有用
brew update
brew install php@7.3
brew link php@7.3
brew link php@7.3 --force
希望有帮助
答案 7 :(得分:2)
除了强制链接之外,您还可以解决MacOS Catalina中的问题
通过将php二进制路径添加到您的bash配置文件中,例如:
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
答案 8 :(得分:1)
就我而言,我必须简单地
brew link --overwrite php
答案 9 :(得分:1)
正如其他用户已经提到的:此错误通常意味着您的 PATH 变量设置不正确,因此终端找不到某些 MAMP 二进制文件。
我在 .zshrc
(或 .bashrc
)配置文件中使用以下代码为当前 PHP 版本设置正确的路径:
export PHP_VERSION=$(php -r 'echo PHP_VERSION;')
export PATH="/Applications/MAMP/Library/bin/:$PATH"
export PATH="/Applications/MAMP/bin/php/php$PHP_VERSION/bin/:$PATH"
export PHP_VERSION=$(php -r 'echo PHP_VERSION;')
这一行从当前 PHP 解释器中获取 PHP 版本。之后,您可以在任何 shell 脚本中访问 $PHP_VERSION
。export PATH="/Applications/MAMP/Library/bin/:$PATH"
这是 MAMP 集成工作所需的标准路径export PATH="/Applications/MAMP/bin/php/php$PHP_VERSION/bin/:$PATH"
这是重要的部分,它将正确的 phpX.Y.Z
文件夹添加到路径列表中。这一行使用了我们在上面第一行中获取的 $PHP_VERSION
。将上述代码段添加到 .zshrc
(或 .bashrc
)后,您需要通过运行以下命令加载更新的 shell 配置文件
source ~/.zshrc # or ~/.bashrc
最后,您可以快速检查一下 PATH 值是否正确:
echo -e ${PATH//:/\\n}
# Output:
...
/Applications/MAMP/bin/php/php7.4.12/bin/ ← this line contains the PHP version
/Applications/MAMP/Library/bin/
...
答案 10 :(得分:0)
我知道这个线程的回答是正确的,我用这种方法做这些事情:
brew link php@7.3
显示使用提示
echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc
在终端中,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
执行which php
的结果必须显示/usr/local/opt/php@7.3/bin/php
Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.9.2/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
,请重试 composer update 。
请使用memory_limit = -1
尝试搜索php.ini,输入终端/usr/local/opt/php@7.3/bin/php --ini
,结果必须显示:配置文件(php.ini)
Path: /usr/local/etc/php/7.3 Loaded Configuration File: /usr/local/etc/php/7.3/php.ini Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d Additional .ini files parsed: /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
nano /usr/local/etc/php/7.3/php.ini
,附加memory_limit = -1,保存
重新启动php
重新执行作曲家更新。
希望我的回答可以为您提供帮助。