需要ext-fileinfo。如何将其添加到我的composer.json文件中?

时间:2014-05-20 22:36:01

标签: php laravel composer-php

我正在尝试安装干预/图片。运行作曲家更新后,我得到:

enter image description here

这是我的作曲家档案:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.1.*",
        "intervention/image": "2.*"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

4 个答案:

答案 0 :(得分:48)

与你的composer.json没什么关系。

你需要安装&启用FileInfo PHP扩展,默认情况下从PHP 5.3.0开始安装。 5.3+之前的版本可以使用discontinued PECL extension

要启用FileInfo扩展,您需要编辑php.ini并更改一行。

  1. 找到该行:

    ;extension=php_fileinfo.dll
    
  2. 删除开始评论:

    extension=php_fileinfo.dll
    

  3. 要找出php.ini所在的位置,您可以从终端运行以下命令:

    $ php --ini
    

    并搜索“已加载的配置文件”。

    请注意 PHP CLI可以加载与Web不同的php.ini文件,因此不要依赖phpinfo()中提供的路径。在终端中运行上面指定的命令,找出PHP CLI加载的文件。

答案 1 :(得分:10)

我们不需要在composer.json

中做任何事情
  

php.ini

中启用fileinfo扩展程序
extension= php_fileinfo.dll
  

在Linux中

1)下载并解压缩包

wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz

tar -zxf Fileinfo-1.0.4.tgz

cd Fileinfo-1.0.4

2)生成用于编译的扩展

phpize

3)配置模块

./配置

4)生成安装文件并安装

使

make install

5)现在扩展将在/ usr / lib64 / php / modules目录下可用。您现在需要在php配置文件中的某处添加扩展名。 编辑/etc/php.ini并添加以下内容: 延长= fileinfo.so 6)保存文件并重新启动网络服务器

service httpd restart

要验证fileinfo模块是否已正确启用,请执行:

php -i | grep fileinfo

fileinfo support =>启用

  

替代方法

仅仅是一个FYI,也可以使用PECL命令安装模块,即

pecl install fileinfo

完成后,只需按照上述步骤5和6启用即可。就是这样。

答案 2 :(得分:4)

如果有其他人在DreamHost上(像我一样)或发现php.ini编辑没有做你想要的,你可以尝试另一条路线。

Here's the DreamHost Wiki page on PHP.ini,但我也会列出以下步骤。

步骤1:创建PHP配置文件(phprc)

  1. 在用户的主文件夹(/home/your_user_name)中,创建一个名为.php的新文件夹(注意领先时段)
  2. 在此新文件夹中,根据您正在使用的PHP版本创建另一个文件夹。您可以在托管面板上找到(并更改它)(DreamHost位于域名>管理域下的panel.dreamhost.com)。因此,如果您使用的是PHP 5.6版,则创建一个名为5.6 的文件夹。
  3. 在此新文件夹中,创建一个名为phprc的新文件(无扩展名)。如果此文件夹中已有phprc个文件,您可以通过将文件名更改为phprc.old来备份该文件。
  4. 第2步:修改phprc以包含扩展程序

    1. 打开新的phprc文件。
    2. 将此行添加到结尾:extension = fileinfo.so
    3. 保存文件
    4. 步骤3:重启PHP和/或您的Web服务器

      通过面板

      如果您有共享托管,或者您对SSH或命令行不满意,可以强制DreamHost选择新的phprc设置。

      1. 导航回Panel,然后转到域名>管理域名。
      2. 点击您正在处理的域旁边的Edit
      3. 请勿在此处进行任何更改。只需向下滚动,然后点击第一部分底部的Change Settings
      4. 在大约10分钟内,DreamHost将引入您的更改。
      5. 如果10分钟后没有看到更新(请耐心等待!),请联系支持人员寻求帮助。
      6. 通过SSH

        如果您对命令行感到满意(并且您没有使用共享主机),请通过SSH连接到您的服务器并运行以下命令:

        对于 Apache Web服务器
        sudo /etc/init.d/httpd2 restart
        
        对于 Nginx Web服务器
        sudo /etc/init.d/nginx stop
        pkill -9 php
        sudo /etc/init.d/nginx start
        

        您的具体命令可能略有不同,但如果您对CLI感到满意,那么您可能知道您的具体命令。

答案 3 :(得分:1)

对于有WAMP的人

左键单击托盘图标 - > PHP - > PHP扩展 - > php_fileinfo

它会重新启动你的服务器而你已经完成了。

如果这不起作用,请尝试编辑内部的php.ini: C:\wamp\bin\php\php5.4.12(最后一部分取决于你的php版本)

查找专栏:;extension=php_fileinfo.dll并删除;

保存并重新启动WAMP服务。