无法安装Laravel包 - Intervention Image

17

我正在跟随 Jeffrey Way 的 Tuts+ Premium 教程,学习 Laravel 4 中的电子商务应用程序开发。他只需编辑 composer.json 文件并添加此行“"intervention/image": "dev-master"”,然后在控制台中输入'composer update' 即可安装软件包。但我尝试同样的操作却失败了。

它显示了以下错误:

" Problem 1 - intervention/image 2.0.2 需要 ext-fileinfo * -> 您的系统缺少所需的 PHP 扩展文件 fileinfo。 - intervention/image 2.0.1 需要 ext-fileinfo * -> 您的系统缺少所需的 PHP 扩展文件 fileinfo。 - intervention/image 2.0.0 需要 ext-fileinfo * -> 您的系统缺少所需的 PHP 扩展文件 fileinfo。 - 安装请求 intervention/image 2.* -> 可满足 intervention/image[2.0.0, 2.0.1, 2.0.2]。

我已经尝试按照其指示在http://image.intervention.io/getting_started/installation上操作,但仍然无法解决。

我不知道如何处理这个问题,请帮忙。我还阅读到过一篇文章,建议编辑 php.ini 文件并取消注释文件信息(fileinfo)相关的一行,但我重新启动 Apache 后仍然无法解决问题。

我的操作系统是 Windows 8,使用 Wamp 和 Laravel。

非常感谢您提供的任何帮助。

5个回答

47

请确保您已经在php\ext文件夹中安装/可用php_fileinfo.dll,并确保以下行在php.ini文件中未被注释:


extension=php_fileinfo.dll

如果被这样注释:

;extension=php_fileinfo.dll

然后只需从该行开头删除;,然后重新启动wamp/apache服务器。

更新:

但是,有些Web服务器很令人困惑,因为它们不使用与您的PHP可执行文件相邻的php.ini。要查找实际php.ini所在的位置,请在phpinfo()中查找其路径:

激活扩展后,保存php.ini,重新启动Web服务器并再次检查phpinfo()。新扩展现在应该有自己的部分。

还要查看PHP手册上的在Windows上安装PHP扩展 (解决问题)。


1
如果在ext文件夹中可用且在php.ini文件中没有被注释,则应该安装它,请确保您已重新启动了Apache服务器,或者可能只需重新启动系统。 - The Alpha
1
正如这两个链接所示,该行代码未被注释http://www.dodaj.rs/f/2g/aS/2UaVmzd1/snip.jpg,并且该文件位于我的ext文件夹中http://www.dodaj.rs/f/1r/AL/Xb3sF8V/snip2.jpg。我尝试重新启动电脑,但它仍然无法工作-出现相同的错误消息。我不知道还能做什么 :/ - Deveram
你能运行 phpinfo(); 并查找正在使用的 php.ini 文件路径吗? - The Alpha
1
您可以从 php 脚本中运行 phpinfo() 函数,只需创建一个 php 文件即可,例如 htdocs/info.php 并写入 <?php phpinfo(); ?>,然后使用浏览器导航到此文件,路径为 localhost/info.php。每个扩展应该有自己的部分。 - The Alpha
1
谢谢Alpha,当我在Laravel项目上使用Wnmp作为本地Web服务器时,取消注释“extension=fileinfo”后它对我有效。 - Two
显示剩余3条评论

5

有2个php.ini文件:

wamp\bin\php\php5.4.3\php.ini
wamp\bin\apache\Apache2.4.4\bin\php.ini

请确保在两个文件中都取消注释扩展,然后重新启动Apache。


3

我遇到了这个问题。困扰我的是Apache使用的php.ini文件和CLI使用的不同。只需要在wamp文件夹中搜索php.ini,并在所有文件中进行更改即可...


1
显然是因为web/apache和CLI有不同的php.ini文件,而composer使用CLI,而phpinfo()使用主要的php.ini文件,所以会出现问题。
如果在CLI中运行php -m并且没有看到模块的名称,则应找到CLI的php.ini文件(在我的情况下为php-cli.ini),并添加扩展名。例如:extension=php_fileinfo.dll 参见:Composer: The requested PHP extension ext-intl * is missing from your system

0

对我来说,我只是插入了列表,因为我找不到它 [ extension=php_fileinfo.dll ] 在 [ExtensionList] 之后

[ExtensionList]

**extension=php_fileinfo.dll**<br>
extension=php_mysqli.dll<br>
extension=php_mbstring.dll<br>
extension=php_gd2.dll<br>
extension=php_gettext.dll<br>
extension=php_curl.dll<br>
extension=php_exif.dll<br>
extension=php_xmlrpc.dll<br>
extension=php_openssl.dll<br>
extension=php_soap.dll<br>
extension=php_pdo_mysql.dll<br>
extension=php_pdo_sqlite.dll<br>
extension=php_imap.dll<br>
extension=php_tidy.dll<br>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接