php.ini vs pecl install 中显示的 zip 扩展版本错误

Wrong version of the zip extension displayed in php.ini vs pecl install

当我发出 composer update 命令时,出现错误:

[18:54] thomas@Thomass-MBP:~/Dropbox/eclipse-workspace/crf2/RedCrossQuest/server$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested PHP extension ext-zip ^7.2 has the wrong version (1.15.4) installed. Install or enable PHP's zip extension.

1.15.4 确实是执行 phpinfo();

时报告的版本

为了解决这个问题,我尝试使用 PECL 更新 zip。 第一次 运行 命令时,我看到了一些标准的编译信息(但我认为有一些警告)

我已经重新启动了 apache,它仍然显示 1.15.4 版本。 而且 composer 还在抱怨 1.15.4 版本。

此外,我开始两次收到有关包含的 zip 扩展名的警告。 PHP 警告:模块 'zip' 已经在第 0 行的未知中加载

我不得不从 php.ini 中删除扩展,但我不明白它现在包含在何处。

当我再次尝试安装时,我得到了这个:

[18:43] thomas@Thomass-MBP:~$ sudo pecl install zip
Password:
pecl/zip is already installed and is the same as the released version 1.15.5
install failed

我已经卸载所有扩展并重新安装它们,现在:

sudo pecl   install grpc protobuf xdebug zip
sudo pecl uninstall grpc protobuf xdebug zip
[19:30] thomas@Thomass-MBP:/usr/local/etc/php/7.2$ php
/usr/local/Cellar/php@7.2/7.2.22_1/pecl/20170718/protobuf.so doesn't appear to be a valid Zend extension
/usr/local/Cellar/php@7.2/7.2.22_1/pecl/20170718/grpc.so doesn't appear to be a valid Zend extension
PHP Warning:  Module 'zip' already loaded in Unknown on line 0

Warning: Module 'zip' already loaded in Unknown on line 0
PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0

Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
PHP Warning:  Module 'xdebug' already loaded in Unknown on line 0

Warning: Module 'xdebug' already loaded in Unknown on line 0

我认为 brew 刚刚炸毁了我的 php 安装...:(

知道如何收拾这个烂摊子吗?

似乎 brew formula 在 1.15.4 版本中内置了 zip 扩展,因为我刚刚重新安装 httpd/php 并且 zip 已经存在。

PECL 不太可能覆盖它。

brew 或 composer 中存在问题。 我的猜测是这是作曲家的问题: https://github.com/composer/composer/issues/8342

xabbuh 在 github 票证上提供的解决方法是使用通配符而不是版本。

所以:

"ext-zip" : "*"

而不是

"ext-zip" : "^7.2"

关于

/usr/local/Cellar/php@7.2/7.2.22_1/pecl/20170718/protobuf.so doesn't appear to be a valid Zend extension
/usr/local/Cellar/php@7.2/7.2.22_1/pecl/20170718/grpc.so doesn't appear to be a valid Zend extension

似乎 pecl 错误地将扩展名添加为 zend_extension(同时它也将它们添加为 "extension",有时一次扩展名添加两次)...