我正在尝试安装 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...但仍然没有运气。
Windows 用户:只需编辑
php.ini
并取消注释此行:
extension=php_fileinfo.dll
记得重启Apache,新的php.ini才能生效。
显然这是因为 web/apache 和 CLI 有单独的
php.ini
文件,并且当作曲家使用 CLI 而 phpinfo() 使用 main php.ini
时,就会出现问题。
如果您在 CLI 中运行
php -m
并且没有看到模块的名称,您应该找到 CLI php.ini
(在我的例子中为 php-cli.ini
并添加扩展名。例如 extension=php_fileinfo.dll
我也有同样的问题。现已修复。
你也可以取消注释这一行
extension=php_fileinfo.dll
在以下文件中:
php.ini-development
php.ini-production
请不要忘记
restart
你的 Apache。对我来说,使用 php 7.4.x 和 Windows 10 是不同的。
我用
php.ini
检查了 PHP 在 CLI 模式下使用的是哪个 php --ini
文件。
它显示了
C:\php7\php.ini
- 我之前解压 PHP 的位置(并且也将 Composer 指向那里)。
然后我需要在该文件中取消注释
extension=fileinfo
。
根据您的平台,可能会有更多的 php.ini,如果您使用 Wamp,则有两个:
确保扩展名在两者中均未注释,然后再次重新启动 apache。
在 Windows 上,我必须在 php.ini 文件中添加行
extension=php_fileinfo.dll
对于 PHP 8 php.ini 中您要取消注释的行是:
;extension=fileinfo
到
extension=fileinfo
我也有同样的问题。通过转到
wamp/bin
文件夹并搜索 .ini
来修复。您会发现几个 php.ini
文件。
编辑所有行中的
extension=php_fileinfo.dll
行,删除 ;在每个人的恳求下。重新启动WAMP,在命令行中输入php -m
来检查fileinfo现在是否存在。
应该可以。
取消 php ini 配置文件中的 extension=php_fileinfo.dll 的注释(如果需要,可以使用 php.ini-development) 然后,如果您使用 XAMPP,请使用 apache shell。可以从 XAMPP 控制面板加载 运行 php -m 来验证扩展是否已加载。 然后运行composer安装。
如果有人想知道如何在 cpanel(基于 Linux)中执行此操作,只需在搜索框中搜索选择 php 版本并单击它,下一个屏幕您将看到当前的 php 版本,接下来您会看到很多带有一些值的复选框,所以现在在这里您可以检查 phpinfo 并单击“保存”以避免您的作曲家错误。
我不知道这是否有帮助,但它对我有用:
问题似乎出在 php 扩展上。因此,我尝试使用 xampp 而不是单独使用 php (在 xampp 安装过程中,有一个添加 php 的选项)。然后用xampp的php路径安装composer。
让我知道这是否也适合您!
附注这也帮助我解决了其他错误。
注意!如果您使用的是 WSL Alpine Linux
当提示任何错误时,只需搜索并安装它,它将自动设置。
例如;
sudo apk search zip
您会看到类似我的情况(php82-zip-8.2.10-r0),但数字之前的任何内容都是我们将添加到 apk 中的内容。
sudo apk add php82-zip
希望有帮助!