需要 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 连接到您的服务器并运行以下命令:
对于 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 或函数添加到我的计算机以使其始终可用?
创建一个允许用户输入数据的PHP文件,然后将其添加到我的数据库中[关闭]
如何使用 Parse LiveQuery for Android 自动将新对象添加到我的 RecyclerAdapter?