Tiny File Manager 介绍与选型指南
Tiny File Manager 认知与选型篇:单文件 PHP Web 文件管理器的架构、功能边界与同类组件量化对比,版本与活跃度数据溯源官方渠道(2026-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(H3K Tiny File Manager,作者 CCP Programmers / prasathmani)
- 官方仓库:https://github.com/prasathmani/tinyfilemanager
- 官方文档站:https://tinyfilemanager.github.io
- 官方镜像仓库:https://hub.docker.com/r/tinyfilemanager/tinyfilemanager
- 版本信息来源:GitHub Releases 页(releases 页首条即为最新发布);社区活跃度来源:shields.io 实时徽章(GitHub stars / last-commit)
二、软件概述
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 stars | shields.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):
- 应用文件:
tinyfilemanager.php一个文件同时承担路由、模板、样式、多语言与全部业务逻辑。官方镜像将其复制为/var/www/html/index.php,用 PHP 内置服务器(php -S 0.0.0.0:80)直接对外服务,不依赖 Apache/Nginx/FPM 也能运行。 - 文件根目录:管理界面操作的根路径由
$root_path变量决定,默认取 PHP 的$_SERVER['DOCUMENT_ROOT'](即应用所在目录);可通过外部配置文件$root_path指向任意磁盘目录。 - 三类扩展点:
config.php外部配置文件:与应用同目录放置即可覆盖源码顶部的全部默认变量(账号、根目录、上传限制、IP 白名单等),无需改动源码文件本体;$CONFIGJSON 变量:语言、主题、显示隐藏文件等界面级选项,且可通过 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 Manager | PHP 单文件 | 挂载即用 | 内置多用户 + 只读组 + IP 白名单 | 全能文件管理(编辑/打包/chmod/备份) | Latest 2.6(2024-11),master 持续更新 | 已有 PHP 环境,要零成本全能入口 |
| FileGator | PHP 多文件应用 | 独立应用 | 用户库 JSON 文件、多角色 | 多用户仓库隔离、批量下载 | v7.16.8 活跃 | 需要较正式的多用户文件门户 |
| copyparty | Python 单文件 | 独立服务 | 多账号 + 细粒度权限 | 媒体索引、事件日志、断点续传 | 1.20.26(2026 高频发版) | Python 服务器、重媒体场景 |
| Directory Lister | PHP | 纯列目录 | 无内置认证 | 只读美化列目录 | 5.8.3 | 公开下载目录展示 |
| miniserve | Rust 单二进制 | CLI 启动 | 简单账密/白名单 | 快速临时分享/上传 | 0.35.0 | 命令行里随手起一个传输口 |
| Gokapi | Go 单二进制 | 独立服务 | 管理员登录 + 分享链接 | 外链分享、过期管理 | 2.2.4 | 对外发文件、WeTransfer 替代 |
| Uguu | PHP | 独立应用 | 可匿名 | 临时文件托管 + 过期清理 | 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 站点子目录;这一点是其他对比对象不具备的。
八、参考链接
- GitHub 仓库:https://github.com/prasathmani/tinyfilemanager
- Releases(版本列表):https://github.com/prasathmani/tinyfilemanager/releases
- 官方文档站:https://tinyfilemanager.github.io
- 密码哈希生成页(改默认密码必用):https://tinyfilemanager.github.io/docs/pwd.html
- 官方示例配置文件:https://tinyfilemanager.github.io/config-sample.txt
- Docker Hub 官方镜像:https://hub.docker.com/r/tinyfilemanager/tinyfilemanager
- 本专栏部署实战:《Tiny File Manager Docker Compose 部署指南》
- 本专栏配置参考:《Tiny File Manager 2.6 配置参数详解》
- 本专栏操作手册:《Tiny File Manager 2.6 常用操作详解》