【问题标题】:requires ext-fileinfo. How do I add that into my composer.json file?需要 ext-fileinfo。如何将其添加到我的 composer.json 文件中?
【发布时间】:2023-03-02 22:33:01
【问题描述】:

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

这是我的作曲家文件:

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


    【解决方案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)

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

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

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

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

      通过面板

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

      1. 导航回您的 Panel,然后转到域 > 管理域。
      2. 点击您正在处理的域旁边的Edit
      3. 不要在此处进行任何更改。只需向下滚动并点击第一部分底部的。
      4. 大约 10 分钟内,DreamHost 将提取您的更改。
      5. 如果 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 并更改一行。

        1. 定位线:

          ;extension=php_fileinfo.dll
          
        2. 删除起始注释:

          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 服务。

        【讨论】:

          猜你喜欢
          • 2019-07-05
          • 2021-11-05
          • 1970-01-01
          • 2013-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多