赞片CMSfileinfo扩展
学完这篇,你能自己给服务器装上 PHP 的 fileinfo 扩展,让赞片CMS 的环境检测通过、后台上传缩略图和视频海报不再报错。
fileinfo 是 PHP 的一个内置扩展,作用是通过读文件内容而不是看后缀名来判断文件真实类型(MIME)。赞片CMS 在安装向导和后台「系统 → 系统环境检测」里会检查它,上传图片、视频封面时也要用它校验,缺了它常见表现是:安装到环境检测页卡住、提示「fileinfo 扩展未安装」,或上传图片时报 Call to undefined function finfo_open()。
第一步:确认到底缺不缺 fileinfo
先别急着装,先确认问题真出在这儿。在服务器上执行:
php -m | grep fileinfo
有输出 fileinfo 就说明命令行已装;没有任何输出就是缺。
再看网页端:在网站根目录建一个 phpinfo.php,内容写 <?php phpinfo(); ?>,浏览器访问 你的域名/phpinfo.php,Ctrl+F 搜 fileinfo。搜不到说明 FPM 环境也缺。
注意:命令行有、phpinfo 里没有,或反过来,是常见情况。赞片CMS 是跑在 FPM 里的,以 phpinfo 的结果为准。用完记得删掉 phpinfo.php。
第二步:宝塔面板安装(Linux 最省事)
登录宝塔面板(7.x / 8.x / 9.x 路径一致),左侧点「软件商店」→ 顶部切到「已安装」→ 找到你站点在用的 PHP 版本(比如 PHP-7.4)→ 点右侧「设置」→ 弹窗里选「安装扩展」标签 → 在列表里找到 fileinfo → 点「安装」。
编译大约 1~3 分钟,按钮变成「卸载」才算装好。装完回到「设置」首页点「服务」→「重启」,或直接在「软件商店 → 已安装」里重启 PHP。
注意:小内存机器(1G 及以下)编译 fileinfo 容易失败。先去「软件商店 → 已安装 → Linux 工具箱 → Swap」加 1G 交换分区再装。安装日志在
/tmp/panelExec.log,卡住不动就tail -f /tmp/panelExec.log看报错。
第三步:命令行环境用包管理器装
不是宝塔的 LNMP / 自建环境,按系统选命令。
Debian / Ubuntu(PHP 7.4 为例):
apt update
apt install php7.4-fileinfo
systemctl restart php7.4-fpm
CentOS / AlmaLinux(Remi 源):
yum install php74-php-fileinfo
systemctl restart php74-php-fpm
把 7.4、74 换成你实际的 PHP 版本号,用 php -v 查。
如果包管理器里没有对应包,就用源码编译,进 PHP 源码包的扩展目录:
cd /root/php-7.4.33/ext/fileinfo
phpize
./configure --with-php-config=/usr/bin/php-config
make && make install
然后在 php.ini(php --ini 查位置)末尾加 extension=fileinfo.so,重启 PHP-FPM。
注意:
phpize和php-config必须来自同一个 PHP 版本,否则编出来的 .so 加载会报undefined symbol。
第四步:Windows 环境(phpstudy / 宝塔 Windows)
打开 phpstudy(2018 版或 V8)→「软件管理」→ 找到正在用的 PHP 版本 →「设置」→「扩展」→ 勾选 fileinfo 保存,软件会自动重启。
手动改的话,编辑该 PHP 版本目录下的 php.ini,找到这一行:
;extension=fileinfo
删掉前面的分号(老版本 PHP 5.x 写的是 ;extension=php_fileinfo.dll,同样删分号),保存后重启 Apache 或 Nginx。
第五步:验证并回到赞片CMS
重新执行 php -m | grep fileinfo,再刷新 phpinfo 页面搜 fileinfo,都出现即成功。
然后登录赞片CMS 后台,进「系统 → 系统环境检测」刷新,fileinfo 会显示为绿色勾。如果还是红的,去「系统 → 缓存管理」清一次缓存再刷新。
注意:如果你是虚拟主机、共享空间,通常没有权限装扩展。这种情况直接联系空间商让他们开 fileinfo,或换支持该扩展的主机,别在上面反复折腾。
小结
- 先用
php -m | grep fileinfo和 phpinfo 页面确认是否真缺,两处结果不一致时以 phpinfo 为准。 - 宝塔面板走「软件商店 → 已安装 → PHP 版本 → 设置 → 安装扩展 → fileinfo」,装完必须重启 PHP。
- 命令行环境用
apt install php7.4-fileinfo或yum install php74-php-fileinfo,版本号要对上。 - 源码编译要保证 phpize 与 php-config 同版本,装完在 php.ini 加
extension=fileinfo.so。 - Windows 下删掉
;extension=fileinfo前的分号并重启服务。 - 虚拟主机无权限时找空间商开启,不要硬试。
原文链接:https://www.gj0.com/thread-1154.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。