宝塔用户_uvzeig 发表于 2025-3-5 14:12:47

【待反馈】宝塔Composer执行提示找不到fileinfo扩展

为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本:Linux面板9.5.0
系统版本:CentOS 7.6.1810 x86_64(Py3.7.9)
问题描述:宝塔Composer执行提示找不到fileinfo扩展
相关截图(日志、错误):使用命令行模式 执行 php -m有fileInfo 扩展删除了所有 禁用函数防止收到禁用函数影响查看 php.ini php_cli.ini 文件均有 fileinfo 路径 检测文件也都存在初步怀疑是 www 用户运行composer 命令 和root 用户运行 结果不一致那这个东西要怎么运行????

宝塔用户_uvzeig 发表于 2025-3-5 14:17:39

运行了 composer show --platform命令
在 composer 运行窗口 分别选择 www 用户和root用户 运行命令
www   没有显示 fileinfo 插件
root用户 显示 有fileinfo 插件
但是推荐使用www 用户   

宝塔用户_uvzeig 发表于 2025-3-5 16:27:43

我自己 调整了 命令行PHP 版本在命令行中输入
sudu -u www composer_2_7_3 update
扩展正常安装非常顺利
使用宝塔的操作窗口就不行真是奇了怪了

宝塔用户_uvzeig 发表于 2025-3-5 17:24:56

最终总结
1.使用命令行窗口运行命令安装
      使用root 用户 不会提示 fileinfo 扩展问题 但是 生成的vender 目录和config 目录中的文件都是root 权限 需要手动更改
      使用sudo -u www 命令切换到www 用户在执行 composer 命令 会完美安装没有权限问题 没有扩展不识别问题
2.使用宝塔composer操作窗口安装
   使用www(推荐使用) 会有fileinfo 扩展未检测到的问题无法运行
   使用root没有扩展问题 但是会有文件权限的问题
sudu -u www composer_2_7_3 update这是我猜测 可视化窗口最终执行的 composer 命令在命令行窗口中执行没有问题

经过各种搜索目前有几种说法
1.未安装fileinfo, 扯淡了 安装了在命令行下 完全安装顺畅
2.扩展文件权限问题,导致没有扫描到,也扯淡了 命令行下切换www账户权限 能看到fileinfo 扩展
3.安装扩展本身就需要root权限,也是扯淡了,我用www命令顺利安装了

这个问题很特定就是composer 窗口下使用www 账户进行composer 命令执行才会有,需要官方人员进行排查了。

阿珂 发表于 2025-3-5 17:28:52

composer.json文件是什么样的,面板内执行有其他的日志吗

宝塔用户_uvzeig 发表于 2025-3-5 17:37:37

阿珂 发表于 2025-3-5 17:28
composer.json文件是什么样的,面板内执行有其他的日志吗

{
    "name": "topthink/think",
    "description": "the new thinkphp framework",
    "type": "project",
    "keywords": [
      "framework",
      "thinkphp",
      "ORM"
    ],
    "homepage": "https://www.thinkphp.cn/",
    "license": "Apache-2.0",
    "authors": [
      {
            "name": "liu21st",
            "email": "liu21st@gmail.com"
      },
      {
            "name": "yunwuxin",
            "email": "448901948@qq.com"
      }
    ],
    "require": {
      "php": ">=8.0.0",
      "topthink/framework": "^8.0",
      "topthink/think-orm": "^3.0|^4.0",
      "topthink/think-filesystem": "^2.0"
    },
    "require-dev": {
      "topthink/think-dumper": "^1.0",
      "topthink/think-trace": "^1.0"
    },
    "autoload": {
      "psr-4": {
            "app\\": "app"
      },
      "psr-0": {
            "": "extend/"
      }
    },
    "config": {
      "preferred-install": "dist"
    },
    "scripts": {
      "post-autoload-dump": [
            "@php think service:discover",
            "@php think vendor:publish"
      ]
    }
}

这是composer.json 的内容 初始安装 thinkphp 框架第一次执行composerupdate 命令
composer窗口 返回结果 it is missing from your system. Install or enable PHP's fileinfo extension.
其他命令都是排查命令已经在上面的评论中写出来了。

宝塔用户_uvzeig 发表于 4 天前

宝塔用户_uvzeig 发表于 2025-3-5 16:27
我自己 调整了 命令行PHP 版本在命令行中输入
sudu -u www composer_2_7_3 update
扩展正常安装非常顺利 ...

命令写错了 是这个 sudo -u www composer_2_7_3 update
页: [1]
查看完整版本: 【待反馈】宝塔Composer执行提示找不到fileinfo扩展