Composer 错误:“您的系统中缺少 PHP 扩展文件信息”

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

我正在尝试安装 Laravel 包 Intervention Image,当我运行

composer update
:

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

  Problem 1
    - intervention/image 2.0.5 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.4 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.3 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.2 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.1 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - Installation request for intervention/image 2.* -> satisfiable by intervention/image[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].

我有 php 5.4,扩展已在

php.ini
phpinfo()
中启用:

                    fileinfo

fileinfo support                  enabled
version                           1.0.5

并重新启动了apache...但仍然没有运气。

php laravel composer-php
13个回答
51
投票

Windows 用户:只需编辑

php.ini
并取消注释此行:

extension=php_fileinfo.dll

记得重启Apache,新的php.ini才能生效。


30
投票

显然这是因为 web/apache 和 CLI 有单独的

php.ini
文件,并且当作曲家使用 CLI 而 phpinfo() 使用 main
php.ini
时,就会出现问题。

如果您在 CLI 中运行

php -m
并且没有看到模块的名称,您应该找到 CLI
php.ini
(在我的例子中为
php-cli.ini
并添加扩展名。例如
extension=php_fileinfo.dll


16
投票

我也有同样的问题。现已修复。
你也可以取消注释这一行

extension=php_fileinfo.dll  

在以下文件中:

  1. php.ini-development
  2. php.ini-production

请不要忘记

restart
你的 Apache。
希望这会有所帮助。


11
投票

对我来说,使用 php 7.4.x 和 Windows 10 是不同的。

我用

php.ini
检查了 PHP 在 CLI 模式下使用的是哪个
php --ini
文件。

它显示了

C:\php7\php.ini
- 我之前解压 PHP 的位置(并且也将 Composer 指向那里)。

然后我需要在该文件中取消注释

extension=fileinfo


4
投票

根据您的平台,可能会有更多的 php.ini,如果您使用 Wamp,则有两个:

  • wamp在\php\php5.4.3\php.ini
  • pache\Apache2.4.4 中的 wamp\php.ini

确保扩展名在两者中均未注释,然后再次重新启动 apache。


4
投票

在 Windows 上,我必须在 php.ini 文件中添加行

extension=php_fileinfo.dll


3
投票

对于 PHP 8 php.ini 中您要取消注释的行是:

;extension=fileinfo

extension=fileinfo

2
投票

我也有同样的问题。通过转到

wamp/bin
文件夹并搜索
.ini
来修复。您会发现几个
php.ini
文件。

编辑所有行中的

extension=php_fileinfo.dll
行,删除 ;在每个人的恳求下。重新启动WAMP,在命令行中输入
php -m
来检查fileinfo现在是否存在。

应该可以。


1
投票

取消 php ini 配置文件中的 extension=php_fileinfo.dll 的注释(如果需要,可以使用 php.ini-development) 然后,如果您使用 XAMPP,请使用 apache shell。可以从 XAMPP 控制面板加载 运行 php -m 来验证扩展是否已加载。 然后运行composer安装。


1
投票

如果有人想知道如何在 cpanel(基于 Linux)中执行此操作,只需在搜索框中搜索选择 php 版本并单击它,下一个屏幕您将看到当前的 php 版本,接下来您会看到很多带有一些值的复选框,所以现在在这里您可以检查 phpinfo 并单击“保存”以避免您的作曲家错误。


1
投票

enter image description here

如果你输入

php --ini
,如果我们使用相同的,你的输出将是这样的

    php version Loaded Configuration File:        
 C:\Program Files\php-8.1.13-nts-Win32-vs16-x64\php.ini
    Scan for additional .ini files in: (none)
    Additional .ini files parsed:      (none)

只要去找你

*php-8.1.13-nts-Win32-vs16-x64*
你就会看到
php
没有扩展名格式用你的编辑器打开它并取消注释extension=fileinfo


0
投票

我不知道这是否有帮助,但它对我有用

问题似乎出在 php 扩展上。因此,我尝试使用 xampp 而不是单独使用 php (在 xampp 安装过程中,有一个添加 php 的选项)。然后用xampp的php路径安装composer。

让我知道这是否也适合您!

附注这也帮助我解决了其他错误。


0
投票

注意!如果您使用的是 WSL Alpine Linux

当提示任何错误时,只需搜索并安装它,它将自动设置。

例如;

sudo apk search zip

您会看到类似我的情况(php82-zip-8.2.10-r0),但数字之前的任何内容都是我们将添加到 apk 中的内容。

sudo apk add php82-zip

希望有帮助!

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