Tiny File Manager 介绍与选型指南

Tiny File Manager 认知与选型篇:单文件 PHP Web 文件管理器的架构、功能边界与同类组件量化对比,版本与活跃度数据溯源官方渠道(2026-11-01)

Tiny File Manager文件管理PHP2026/11/01

Tiny File Manager 介绍与选型指南

目标:面向需要在 Linux 服务器上快速搭建一套「Web 文件管理器」的读者,讲清 Tiny File Manager 是什么、能做什么、边界在哪里,并与同类自托管文件管理组件做量化选型对比。本文全部信息来源于官方 GitHub 仓库(prasathmani/tinyfilemanager)、官方文档站(tinyfilemanager.github.io)与 Docker Hub 官方镜像仓库,查询日期 2026-11-01。

一、环境信息

本文为认知与选型篇,不依赖特定部署环境;文中引用的版本、镜像与活跃度数据均来自下列官方渠道,查询日期统一为 2026-11-01:

二、软件概述

Tiny File Manager 是一个单文件 PHP 应用(tinyfilemanager.php),把它放到任意支持 PHP 的 Web 目录下即可获得一个完整的浏览器端文件管理器:浏览目录、上传下载、在线编辑、压缩解压、权限修改、多用户与只读账号等能力全部内置于一个文件之中,无需数据库、无需 Composer 依赖、无需独立进程。

项目在 GitHub 上的几个关键事实(来源与查询日期标注在各数据后):

维度事实来源(查询日期 2026-11-01)
最新稳定版2.6(GitHub Releases 标记 Latest,发布时间 2024-11-05)GitHub Releases 页
代码活跃度master 分支持续开发,最近提交 2026 年 7 月shields.io last-commit 徽章
社区规模约 6k starsshields.io stars 徽章
许可证MIT(宽松许可,可商用、可内嵌分发)仓库 LICENSE 文件
语言/技术栈PHP(兼容 PHP 5.6 起的低版本,官方镜像使用 PHP 7.4)仓库源码与官方 Dockerfile
部署形态单文件放置即用;官方同时发布 Docker 镜像仓库 README、Docker Hub

💡 说明:Tiny File Manager 的版本节奏是「大版本低频、master 分支高频」——2.6 作为 Latest Release 发布于 2024-11-05,但其 master 分支在此之后仍持续合入修复(2026-07 仍有提交,Docker Hub 上 master 标签镜像也于 2026-07-20 重新构建)。这与「每发一个版本就打一个镜像 tag」的项目不同,选型时需要注意 master 分支代码与 Latest Release 代码之间存在修复差。

三、核心架构

Tiny File Manager 的架构可以概括为「一个文件、两个目录、三类扩展点」(以下均来自对官方仓库源码与官方 Dockerfile 的直接阅读,查询日期 2026-11-01):

  1. 应用文件:tinyfilemanager.php 一个文件同时承担路由、模板、样式、多语言与全部业务逻辑。官方镜像将其复制为 /var/www/html/index.php,用 PHP 内置服务器(php -S 0.0.0.0:80)直接对外服务,不依赖 Apache/Nginx/FPM 也能运行。
  2. 文件根目录:管理界面操作的根路径由 $root_path 变量决定,默认取 PHP 的 $_SERVER['DOCUMENT_ROOT'](即应用所在目录);可通过外部配置文件 $root_path 指向任意磁盘目录。
  3. 三类扩展点:
    • config.php 外部配置文件:与应用同目录放置即可覆盖源码顶部的全部默认变量(账号、根目录、上传限制、IP 白名单等),无需改动源码文件本体;
    • $CONFIG JSON 变量:语言、主题、显示隐藏文件等界面级选项,且可通过 Web 界面的 Settings 面板修改并自动写回配置文件;
    • translation.json 多语言文件:放置于应用同目录即可启用多语言(含中文 zh-CN),缺省不存在时界面只有英文。

安全机制上,应用内置了 CSRF token 校验(每个写操作请求都要求携带与会话绑定的 token)、登录失败延迟 1 秒、IP 白/黑名单($ip_whitelist/$ip_blacklist + 三种规则模式)、目录穿越清洗(路径参数统一过 fm_clean_path 去除 .. 等)、只读账号体系($readonly_users)与按用户目录隔离($directories_users)。

四、功能特性

以下功能清单来自官方仓库 README 与源码功能分支(查询日期 2026-11-01):

  • 文件浏览与检索:目录列表(大小/修改时间/权限/属主列)、递归搜索(弹窗高级搜索)、隐藏文件开关、列显示开关;
  • 上传下载:浏览器拖拽分片上传(dropzone,支持分片续传)、从 URL 远程拉取上传(内置禁止 127.0.0.1/localhost 与 22/23/25/3306 等端口的回环防护)、单文件下载、多文件打包下载;
  • 在线编辑与查看:ace.js 代码编辑器(语法高亮、按扩展名映射语言)、highlight.js 只读高亮查看、Google/Microsoft 在线文档预览($online_viewer);
  • 文件操作:新建/重命名/复制/移动/删除、备份副本(自动带时间戳 .bak 后缀)、权限修改(chmod 九宫格)、批量选择(全选/反选)后统一删除或打包;
  • 压缩解压:ZipArchive 打 zip、PharData 打 tar,zip/tar 一键解压(可选解压到同名子目录);
  • 多用户与权限:bcrypt 密码哈希(password_hash/password_verify)、只读用户组、按用户指定各自的起始目录、官方在线密码哈希生成页(docs/pwd.html);
  • 界面能力:Bootstrap 5 界面、明暗主题、多语言(约 30+ 语言,含简体中文)、粘性导航栏、移动端适配。

五、快速开始(最小可用示例)

官方 README 推荐的容器化最小部署方式(来源:仓库 README 与官方 Dockerfile,查询日期 2026-11-01),一条命令即可把某个磁盘目录暴露成 Web 文件管理器:

docker run -d \
  -v /absolute/path:/var/www/html/data \
  -p 80:80 \
  --restart=always \
  --name tinyfilemanager \
  tinyfilemanager/tinyfilemanager:master
  • -v /absolute/path:/var/www/html/data:把宿主机上要管理的目录挂进应用根目录下的 data 子目录;
  • 首次访问 http://<服务器IP>:80/,默认账号 admin / admin@123(只读账号 user / 12345),登录后应第一时间修改默认密码。

对应的 Docker Compose 最小文件(应用侧的完整部署步骤、数据持久化与配置覆盖方法,见本专栏 《Tiny File Manager Docker Compose 部署指南》):

name: tiny-file-manager-2.6-stack

services:
  web:
    image: tinyfilemanager/tinyfilemanager:master
    container_name: tiny-file-manager-2.6-web
    ports:
      - "8134:80"
    volumes:
      - ./data:/var/www/html/data
    restart: unless-stopped

💡 技术拓展:「Web 文件管理器」按服务形态大致分四类,对比一览——

形态代表特点适用
单文件挂载型Tiny File Manager、Directory Lister一个脚本放进 Web 目录即用,零依赖快速给已有 PHP 主机加管理入口
独立服务型copyparty、miniserve、Gokapi自带 HTTP 服务与认证,不依赖 Web 环境裸服务器/容器直接跑
多文件应用型FileGator完整应用目录 + 用户库文件需要更细的多用户管理
网盘型Uguu 等临时分享类面向「分享链接」而非「管理磁盘」对外发文件/临时传输

本文主角 Tiny File Manager 属于第一类「单文件挂载型」的代表作:如果目标机器上已有 PHP 环境,它的部署成本几乎为零。

六、适用场景与限制

6.1 适用场景

  • 服务器文件管理入口:在已有 PHP 环境的虚拟主机/宝塔面板/传统 LAMP 服务器上加一个浏览器端文件管理入口,免去 FTP/SFTP 客户端;
  • 低信任环境下的受控访问:用只读账号 + IP 白名单把某个目录开放给协作者浏览下载,而不发放 shell 或 SFTP 权限;
  • 临时运维通道:单文件即插即用,应急传文件、看日志、改配置(在线编辑 + 备份副本机制天然适配「改前先备份」习惯);
  • NAS/家庭服务器:配合官方镜像一键部署,作为家庭内网的轻量文件面板。

6.2 限制与注意

  • 无数据库、无审计:用户、配置都在 PHP 文件/JSON 里,没有操作审计日志与回收站,删除即真删(官方没有软删除机制,重要目录应依赖外部备份);
  • 性能边界:单 PHP 进程内置服务器(官方镜像)面向个人/小团队规模,不适合高并发公网场景;目录条目极多(数万级)时列表渲染会明显变慢;
  • 界面资源走公共 CDN:Bootstrap/ace.js 等前端资源默认引用 jsdelivr/cdnjs 公共 CDN,纯内网部署需自行处理资源本地化,否则界面无样式;
  • 默认凭据风险:默认 admin/admin@123 公开写在 README 里,暴露公网前必须改密 + 建议叠加 IP 限制或反向代理认证;
  • 版本维护节奏:Release 版本更新缓慢(Latest 2.6 发布于 2024-11),安全修复多落在 master 分支,追求修复及时性需跟进 master 分支镜像。

七、同类选型对比

对比对象选取同为「自托管文件管理/文件服务」赛道、且本平台已有专栏的六个组件。数据来源:各自官方仓库与 Releases 页,查询日期 2026-11-01:

组件技术栈形态认证与用户管理能力重点最新版本节奏(查询日 2026-11-01)适用画像
Tiny File ManagerPHP 单文件挂载即用内置多用户 + 只读组 + IP 白名单全能文件管理(编辑/打包/chmod/备份)Latest 2.6(2024-11),master 持续更新已有 PHP 环境,要零成本全能入口
FileGatorPHP 多文件应用独立应用用户库 JSON 文件、多角色多用户仓库隔离、批量下载v7.16.8 活跃需要较正式的多用户文件门户
copypartyPython 单文件独立服务多账号 + 细粒度权限媒体索引、事件日志、断点续传1.20.26(2026 高频发版)Python 服务器、重媒体场景
Directory ListerPHP纯列目录无内置认证只读美化列目录5.8.3公开下载目录展示
miniserveRust 单二进制CLI 启动简单账密/白名单快速临时分享/上传0.35.0命令行里随手起一个传输口
GokapiGo 单二进制独立服务管理员登录 + 分享链接外链分享、过期管理2.2.4对外发文件、WeTransfer 替代
UguuPHP独立应用可匿名临时文件托管 + 过期清理1.9.9公共/私有临时上传站

关键差异与选型建议:

  • 按「是否已有 PHP 环境」分流:已有 → Tiny File Manager / FileGator / Directory Lister 几乎零额外依赖;纯裸服务器 → copyparty / miniserve / Gokapi 这类自带运行时的更省事;
  • 按「管理 vs 分享」分流:要像资源管理器一样全面操作服务器文件(编辑、打包、权限、备份)→ Tiny File Manager 是同类中最全能的单文件方案;要的是「发链接给别人下载」→ Gokapi / Uguu;只读展示 → Directory Lister;
  • 按「用户体系复杂度」分流:只有管理员自己用 → Tiny File Manager / miniserve;多人协作、需要目录隔离 → FileGator 或 copyparty(后者权限粒度更细);
  • 兼容矩阵:Tiny File Manager 对宿主要求最宽(PHP 5.6+ 即可跑,官方镜像 PHP 7.4),单文件可嵌进任何既有 PHP 站点子目录;这一点是其他对比对象不具备的。

八、参考链接