【问题标题】:Wrong version of the zip extension displayed in php.ini vs pecl installphp.ini 与 pecl 安装中显示的 zip 扩展名版本错误
【发布时间】:2020-01-24 21:16:15
【问题描述】:

当我发出 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 安装... :(

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

【问题讨论】:

  • 您是如何访问phpinfo的?通过网络还是通过命令行? php 命令行有时被配置为具有不同的 php.ini。也许就是这样? 'php -i' 的输出是什么
  • php -i 和 phpinfo() 给出相同的 php.ini 文件位置 配置文件 (php.ini) 路径 => /usr/local/etc/php/7.2 加载的配置文件 => /usr /local/etc/php/7.2/php.ini 扫描此目录以获取其他 .ini 文件 => /usr/local/etc/php/7.2/conf.d 解析的其他 .ini 文件 => /usr/local/etc/ php/7.2/conf.d/ext-opcache.ini
  • php.d目录下是否有多个ini文件多次加载模块?
  • 不,我也检查过了。有点奇怪。我会尝试删除并重新安装 httpd/php

标签: php homebrew pecl


【解决方案1】:

似乎 brew 公式在 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(同时它还将它们添加为“扩展名”,有时一个扩展名两次添加)...

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多