Composer 错误:“系统中缺少 PHP 扩展文件信息”
Posted
技术标签:
【中文标题】Composer 错误:“系统中缺少 PHP 扩展文件信息”【英文标题】:Composer error: "PHP extension fileinfo is missing from your system" 【发布时间】:2022-01-19 23:40:34 【问题描述】:我正在尝试安装 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...但仍然没有运气。
【问题讨论】:
【参考方案1】:根据你的平台,可能有更多的php.ini,如果你使用的是Wamp,那么有两个:
wamp\bin\php\php5.4.3\php.ini wamp\bin\apache\Apache2.4.4\bin\php.ini确保扩展名在两者中都未注释,然后再次重新启动 apache。
【讨论】:
我的 C:\Bitnami\wampstack-5.5.27-0\apache2\bin 中没有任何 php.ini。同样在 phpinfo() 中说 C:\Bitnami\wampstack-5.5.27-0\php\php.ini 。在这个文件中,我没有注释扩展名,但我仍然有问题。你知道问题可能是什么吗?【参考方案2】:显然这是因为 web/apache 和 CLI 有单独的 php.ini
文件,并且因为 composer 使用 CLI 而 phpinfo() 使用主要的 php.ini
,所以会出现问题。
如果您在 CLI 中运行 php -m
并且看不到模块的名称,您应该找到 CLI php.ini
(在我的情况下为 php-cli.ini
并添加扩展名。例如 extension=php_fileinfo.dll
【讨论】:
我将该行添加到我的 php-cli.ini 中,但在服务器重新启动后仍然存在问题。我已取消注释每个 php.ini 文件中的行。还是没有运气。 @americanknight 当你运行php-m
时,模块的名称会出现吗?
不,它没有出现在列表中。我在 Windows 7 上运行 UniServer 11.6。
我找不到 php-cli.ini 文件。它位于哪里?
输入php --ini
查看php
正在使用哪个ini文件【参考方案3】:
Windows 用户:只需编辑 php.ini
并取消注释此行:
extension=php_fileinfo.dll
记得重启 Apache 以使新的 php.ini 生效。
【讨论】:
非常适合 IIS。 我在使用 PHP Tools for Visual Studio 时遇到了麻烦。我在 Visual Studio 中运行 Composer 期间使用 Process Monitor 解决了这个问题(“安装新的 Composer 包...”)。我发现这实际上触发了哪个 PHP.EXE,然后 Composer 调用实际使用了哪个 PHP.INI。将扩展添加到正确的 PHP.INI 后,Composer 运行成功。【参考方案4】:我也有同样的问题。通过转到wamp/bin
文件夹并搜索.ini
进行修复。你会发现几个php.ini
文件。
编辑extension=php_fileinfo.dll
行,删除 ;在每个人的乞求下。重新启动 WAMP,在命令行中输入php -m
以检查 fileinfo 现在是否存在。
应该可以。
【讨论】:
【参考方案5】:我也有同样的问题。现已修复。 你也可以取消注释这一行
extension=php_fileinfo.dll
在以下文件中:
php.ini-development
php.ini-production
请不要忘记restart
您的 Apache。
希望这会有所帮助。
【讨论】:
【参考方案6】:在 php ini 配置文件中取消注释 extension=php_fileinfo.dll(如果需要,可以使用 php.ini-development) 然后,如果您使用 XAMPP,请使用 apache shell。它可以从 XAMPP 控制面板加载 运行 php -m 以验证扩展是否已加载。 然后运行作曲家安装。
【讨论】:
【参考方案7】:在 Windows 上,我必须在我的 php.ini 文件中添加行 extension=php_fileinfo.dll
【讨论】:
【参考方案8】:如果有人想知道如何在 cpanel(基于 linux)中执行此操作,只需在搜索框中搜索选择 php 版本并单击它,下一个屏幕您将看到当前的 php 版本,接下来您会看到许多带有一些值的复选框,所以现在在这里您可以检查 phpinfo 并单击保存以避免您的作曲家错误。
【讨论】:
谢谢,但在我的 CPanel 中没有这样的页面可以检查:( 你必须有搜索选项上面搜索“php”你会在那里“选择php版本”,如果你没有找到它,那么你使用的是哪个版本的cpanel? 找不到。 CPanel 82.0.16 我在 CPanel 上有 2 个网站。其中一个具有扩展部分,但我无法通过接口定义每个子域的 php 版本,所以我在 .htaccess 文件中定义了它。我发送给您的另一个 CPanel 版本没有扩展名,但我可以通过接口定义每个子域的 PHP 版本而无需编码。所以对于第一个,我要求提供商激活我想要的扩展,他做到了。【参考方案9】:对我来说,使用 php 7.4.x 和 Windows 10 是不同的。
我用php --ini
检查了PHP在CLI模式下使用了哪个php.ini
文件。
它显示 C:\php7\php.ini
- 我之前解压缩 PHP 的地方(并且还指向 Composer 那里)。
然后我需要在该文件中取消注释 extension=fileinfo
。
【讨论】:
以上是关于Composer 错误:“系统中缺少 PHP 扩展文件信息”的主要内容,如果未能解决你的问题,请参考以下文章
Composer [UnexpectedValueException] 错误将尝试使用 composer 安装 github 项目
Composer 无法在 Windows 上运行,出现 [Composer\Exception\NoSslException] 错误
错误:无法解析“composer.lock”;它必须是 Composer 生成的有效锁文件
composer update的错误使用以及如何更新composer.lock文件