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

Posted

技术标签:

【中文标题】需要 ext-fileinfo。如何将其添加到我的 composer.json 文件中?【英文标题】:requires ext-fileinfo. How do I add that into my composer.json file? 【发布时间】:2014-07-09 09:11:45 【问题描述】:

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

这是我的作曲家文件:


    "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"

【问题讨论】:

【参考方案1】:

对于新版本。就我而言,它在这里。

让我们搜索这个关键字extension=fileinfo 以在 php.ini 文件中找到它。 我的php版本7.3.32

【讨论】:

【参考方案2】:

我们不需要在 composer.json 中做任何事情

窗户

php.ini

中启用文件信息扩展
extension= php_fileinfo.dll

在 Linux 中

1) 下载并解压包

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

tar -zxf 文件信息-1.0.4.tgz

cd Fileinfo-1.0.4

2) 生成用于编译的扩展

php化

3) 配置模块

./配置

4) 生成安装文件并安装

制作

进行安装

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

服务 httpd 重启

要验证文件信息模块是否正确启用,请执行:

php -i | grep 文件信息

文件信息支持 => 启用

替代方法

仅供参考,也可以使用 PECL 命令安装该模块,即

pecl 安装文件信息

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

【讨论】:

这对我来说似乎是正确的答案。我不明白为什么会标记另一个答案。只需转到正在使用的任何 php-xyz.ini 并删除 ; 并重新启动服务器。 @Zehelvion 是的,但 timus2001 可以编辑我的答案并添加此信息;你也可以这样做。我用有关如何启用扩展的简短信息更新了我的答案。如果您仍然认为这可能会更好,请随时对其进行编辑和改进。 “关心你的 AlexandruGuzinschi,你的答案现在更完整了。:)” @Zehelvion 很高兴你的编辑回来了。最初的评论看起来不太好:) @AlexandruGuzinschi,:) 我想,我不确定我的意思是不是两个答案都很好,所以我用不同的措辞来强调这一点。【参考方案3】:

如果其他人在 DreamHost 上(像我一样)或发现 php.ini 编辑不符合您的要求,您可以尝试其他路线。

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

第一步:创建一个PHP配置文件(phprc)

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

第 2 步:编辑 phprc 以包含扩展名

    打开您的新phprc 文件。 将此行添加到末尾:extension = fileinfo.so 保存文件

第 3 步:重启 PHP 和/或您的网络服务器

通过面板

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

    导航回您的 Panel,然后转到域 > 管理域。 点击您正在处理的域旁边的Edit。 不要在此处进行任何更改。只需向下滚动并点击第一部分底部的。 大约 10 分钟内,DreamHost 将提取您的更改。 如果 10 分钟后仍未看到更新(请耐心等待!),请联系支持人员寻求帮助。
通过 SSH

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

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

您的具体命令可能略有不同,但如果您熟悉 CLI,那么您可能知道您的具体命令。

【讨论】:

【参考方案4】:

与您的 composer.json 无关。

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

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

    定位线:

    ;extension=php_fileinfo.dll
    

    删除起始注释:

    extension=php_fileinfo.dll
    

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

$ php --ini

然后搜索“加载的配置文件”。

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

【讨论】:

PHP 5.3 之前的版本无法运行 Composer。 @Sven 从技术上讲你不能,虽然有一些workarounds。 这可能对某人有所帮助:我尝试了上述解决方案(以及通过作曲家重新安装所有内容)都无济于事..最后我的问题只是我忘记了更新我的 php.ini 文件后重新启动我的 XAMPP 服务器!所以请记住在进行此更改后重新启动服务器:) 在终端中运行 "$php --ini" 让我发现了问题所在。大家:不要使用 phpinfo() 因为它可能会产生误导。非常好的提示,谢谢。【参考方案5】:

对于 WAMP 患者

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

它会重新启动你的服务器,然后你就完成了。

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

查找该行:;extension=php_fileinfo.dll 并删除 ;

保存并重新启动 WAMP 服务。

【讨论】:

以上是关于需要 ext-fileinfo。如何将其添加到我的 composer.json 文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PowerShell cmdlet 或函数添加到我的计算机以使其始终可用?

如何将 TXT 文件作为资源添加到我的 EXE 文件中?

创建一个允许用户输入数据的PHP文件,然后将其添加到我的数据库中[关闭]

如何使用 Parse LiveQuery for Android 自动将新对象添加到我的 RecyclerAdapter?

入门 | 在微软新版 Microsoft Edge 中将站点添加到我的收藏夹

如何使用图像选择器将照片发送到我的 hp 彩色打印机?