需要ext-fileinfo。如何将其添加到我的composer.json文件中? http://pecl.php.net/get/Fileinfo-1.0.4.tgz

问题描述 投票:14回答:4

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

这是我的作曲家档案:

{
    "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"
}
php laravel composer-php
4个回答
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

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

$ php --ini

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

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


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)配置模块

./configure

4)生成安装文件并安装它

make

make install

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

service httpd restart

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

php -i | grep fileinfo

fileinfo support => enabled

替代方法

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

pecl install fileinfo

完成后,只需按照上面提到的步骤5和6启用它。而已。


4
投票

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

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

Step 1: Create a PHP configuration file (phprc)

  1. 在用户的主文件夹(/home/your_user_name)中,创建一个名为.php的新文件夹(注意前导期)
  2. 在这个新文件夹中,根据您正在使用的PHP版本创建另一个文件夹。您可以在主机面板上找到(并更改它)(DreamHost位于域名>管理域下的panel.dreamhost.com)。因此,如果您使用的是PHP 5.6版,请创建一个名为5.6的文件夹。
  3. 在这个新文件夹中,创建一个名为phprc的新文件(无扩展名)。如果此文件夹中已有phprc文件,您可以通过将文件名更改为phprc.old来备份它。

Step 2: Edit phprc to include the extension

  1. 打开您的新phprc文件。
  2. 将此行添加到最后:extension = fileinfo.so
  3. 保存文件

Step 3: Restart PHP and/or your web server

Via Panel

如果您有共享主机,或者您对SSH或命令行不满意,可以强制DreamHost获取新的phprc设置。

  1. 导航回您的Panel,然后转到“域”>“管理域”。
  2. 点击您正在处理的域旁边的Edit
  3. 不要在这里做任何改变。只需向下滚动并单击第一部分的底部即可。
  4. 在大约10分钟内,DreamHost将引入您的更改。
  5. 如果10分钟后没有看到更新(请耐心等待!),请联系支持部门寻求帮助。
Via SSH

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

For Apache web servers
sudo /etc/init.d/httpd2 restart
For Nginx web servers
sudo /etc/init.d/nginx stop
pkill -9 php
sudo /etc/init.d/nginx start

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


1
投票

对于有WAMP的人

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

它将重新启动您的服务器,您就完成了。

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

寻找线:;extension=php_fileinfo.dll并删除;

保存并重新启动WAMP服务。

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