安装体检:修正 fileinfo 说明(只影响本机存储模式)

原先写「上传校验会更严格」是不准确的:OSS 存储模式下,附件校验走对象存储
返回的 Content-Type(lib/attach.php 的 oss 分支),根本不调用 finfo。真正用到
fileinfo 的只有本机存储分支(lib/attach.php 的 local 分支、media.php)和
media.php 的本机附件 MIME 探测。

改动:
- install.php 体检项说明改为「按文件内容识别附件类型(仅本机存储模式用得上)」,
  缺失文案补上「不影响安装」,补救提示写清 OSS 模式以对象存储返回的类型为准、
  与本扩展无关,避免管理员误以为装个扩展就补了个安全缺口。
- README 同步区分两种存储模式;补充两点排查经验:
  面板显示「有」不等于运行中的进程已加载,要看 php.ini 里的 extension 行;
  且改完 ini 必须重启/重载 PHP-FPM 才生效(reload 即可,不必 restart)。

验证:php -l 双版本通过;安装向导 60/60、主回归 25/25、PHP 8.5 兼容 19/19;
线上部署 17/17,6 个文件 md5 逐个一致,冒烟全绿。
This commit is contained in:
2026-10-23 09:07:39 +08:00
parent 23772b37ab
commit 690228e7c1
2 changed files with 9 additions and 5 deletions
+6 -2
View File
@@ -56,9 +56,13 @@ feedback/
2. 确认该站点使用的 PHP 版本 **≥ 7.4**(推荐 8.1~8.5;**8.5 已逐项实测,无弃用告警**),并已启用扩展:
**pdo_sqlite、sqlite3、openssl、mbstring**(宝塔默认均已有;在「软件商店 → PHP → 安装扩展」可查看)。
**curl 为可选**:有则优先用它和 OSS 通信,没有会自动退回 PHP 内置的流式请求,功能不受影响。
**fileinfo 为推荐**:开启后上传时按文件**真实内容**判断类型(`finfo`);
没有也能正常用,但类型校验会退化为「扩展名 + 浏览器声明的 MIME」。
**fileinfo 为推荐**:**本机存储模式**下,上传时按文件**真实内容**判断类型(`finfo`);
没有也能正常用,但该模式下的类型校验会退化为「扩展名 + 浏览器声明的 MIME」。
注意:**OSS 存储模式**的类型判定走对象存储返回的 `Content-Type`,不经过 `finfo`,
所以这个扩展只影响本机存储。
⚠️ 新装一套 PHP(尤其宝塔里的 8.5)时 `fileinfo` 常常**默认没开**,从旧版本切过来要顺手检查一次。
面板上显示"有"不等于已在运行中的进程里加载 —— 要看 `php.ini` 里的 `extension=` 行,
而且**改完 ini 必须重启/重载 PHP-FPM** 才会生效(reload 即可,不必 restart)。
3. 给数据库目录写权限(宝塔一般已允许):
```bash
chown -R www:www /www/wwwroot/你的域名/feedback
+3 -3
View File
@@ -38,9 +38,9 @@ function fb_install_checks() {
'curl' => '访问 OSS(可选,没有会退回 PHP 流式请求)',
'mbstring' => '中文字数统计(可选)',
'fileinfo' => [
'上传文件的真实类型识别(推荐开启)',
'未启用(仍可用,但上传类型只按扩展名核对)',
'建议在 PHP 设置里开启 fileinfo,上传校验会更严格',
'按文件内容识别附件类型(仅本机存储模式用得上)',
'未启用(不影响安装;本机存储时只按扩展名核对)',
'建议开启。注意 OSS 存储模式的类型判定以对象存储返回的 Content-Type 为准,不经过本扩展',
],
];