宝塔面板中开启PHP fileinfo扩展有四种方法:一、图形界面安装;二、SSH手动编译;三、修改php.ini启用已有fileinfo.so;四、更换为含fileinfo的完整版PHP。

如果您在宝塔面板中部署 Laravel、ThinkPHP 或其他依赖 fileinfo 扩展的 PHP 框架时遇到“Class 'finfo' not found”或“fileinfo extension is missing”错误,则说明当前 PHP 版本未启用 fileinfo 扩展。以下是开启该扩展的多种方法:
一、通过宝塔面板图形界面启用
此方法适用于已编译安装且 fileinfo 模块存在于 PHP 源码中的环境,操作直观、无需命令行交互。
1、登录宝塔面板,进入【软件商店】页面。
2、在右上角搜索框中输入当前使用的 PHP 版本号(如“PHP 8.1”),点击对应版本右侧的【设置】按钮。
立即学习“PHP免费学习笔记(深入)”;
3、在打开的设置页面中,切换至【安装扩展】选项卡。
4、在扩展列表中找到 fileinfo,点击其右侧的【安装】按钮。
5、等待安装进度条完成,状态显示为“已安装”后,点击【重载配置】使扩展生效。
二、通过 SSH 手动编译启用(适用于源码编译版 PHP)
当面板界面中未列出 fileinfo 扩展,或 PHP 为手动编译安装时,需进入服务器终端执行编译操作。该方式直接调用 PHP 源码中的 ext/fileinfo 目录进行模块构建。
1、使用 SSH 工具连接服务器,执行命令切换至宝塔 PHP 源码目录:
cd /www/server/php/对应版本号/src/ext/fileinfo
2、运行 phpize 命令初始化编译环境:
/www/server/php/对应版本号/bin/phpize
3、执行 configure 指定 PHP 配置路径:
./configure --with-php-config=/www/server/php/对应版本号/bin/php-config
4、编译并安装:
make && make install
5、编辑 PHP 配置文件,添加扩展声明:
echo "extension=fileinfo.so" >> /www/server/php/对应版本号/etc/php.ini
6、重启 PHP 服务:
/etc/init.d/php-对应版本号 restart
三、通过修改 php.ini 直接启用(适用于已存在 fileinfo.so 的环境)
部分 PHP 版本在安装时已内置 fileinfo.so 文件,但未在配置中启用。此时只需确认文件存在并激活加载指令即可,无需重新编译。
1、确认 fileinfo.so 文件是否存在:
ls -l /www/server/php/对应版本号/lib/php/extensions/no-debug-non-zts-*/fileinfo.so
2、若输出显示该文件存在,执行以下命令向 php.ini 追加扩展行:
sed -i '/^;extension=fileinfo\.so/d' /www/server/php/对应版本号/etc/php.ini
sed -i '/^extension=fileinfo\.so/d' /www/server/php/对应版本号/etc/php.ini
echo "extension=fileinfo.so" >> /www/server/php/对应版本号/etc/php.ini
3、验证扩展是否已加载:
/www/server/php/对应版本号/bin/php -m | grep fileinfo
4、若返回结果为 fileinfo,则表示加载成功;否则检查路径与权限是否正确。
四、更换 PHP 版本重新安装(适用于精简版或 Docker 环境)
某些低配镜像或自定义编译的 PHP 可能完全剔除了 fileinfo 模块源码,此时无法通过常规方式启用。最稳妥的方式是切换至官方完整编译版本。
1、进入宝塔【软件商店】→【PHP】,查看可用版本列表。
2、选择与当前版本主版本号一致但标注为【完整版】或【编译安装】的 PHP 包(如“PHP 8.0 编译安装”而非“PHP 8.0 快速安装”)。
3、点击【安装】,等待完成。
4、安装完毕后,在网站设置中将对应站点的 PHP 版本切换至新安装的版本。
5、进入【PHP 设置】→【安装扩展】,确认 fileinfo 已默认勾选并处于启用状态。










