FileGator 介绍与选型指南
FileGator(filegator/filegator)多用户 PHP Web 文件管理器的定位、核心架构(8 大可插拔服务域)、功能特性、快速开始与 copyparty/Gokapi/FileRise/Chibisafe 量化选型对比,全部信息溯源官方仓库(查询日期 2026-10-30)。
FileGator 介绍与选型指南
目标:面向需要在自有服务器上部署「多用户 Web 文件管理器」的读者,讲清 FileGator 的定位、核心架构、功能特性、快速开始路径与同类选型对比。本文为认知篇,全部信息均溯源官方仓库与官方文档(来源与查询日期随文标注,统一查询日期 2026-10-30),不包含本地实测结论;部署与接口的逐条实测见本专栏后续篇章。
一、环境信息
本文溯源所用信息源与版本基线如下(查询日期 2026-10-30):
- 评估对象:FileGator(GitHub 仓库
filegator/filegator) - 最新稳定版:v7.16.8(GitHub Releases 页
releases/latest于 2026-10-30 重定向至v7.16.8;仓库另有 v8.0.0-beta.1 预发布版,2026-10-27 推送,因属 beta 不作为稳定基线) - 社区活跃度:GitHub 星数 3.1k(shields.io stars 徽章实查,2026-10-30);仓库持续维护中(shields.io last-commit 徽章显示最后一次提交为「last tuesday」,即 2026-10-27 前后)
- Docker 镜像:
filegator/filegator(Docker Hub 官方仓库,latest标签于 2026-10-21 更新且与 v7.16.8 同日发布;累计拉取量 908k,shields.io docker-pulls 徽章实查) - 技术栈:PHP 8.3 + Vue.js 前端 + Symfony 组件(路由/会话/CSRF)+ League Flysystem 存储抽象(来源:官方仓库 README 与 Dockerfile,2026-10-30)
- 许可证:MIT(来源:官方仓库 README)
二、软件概述
FileGator 是一个免费开源的多用户 PHP Web 文件管理器(来源:官方 README 首句「FileGator is a free, open-source, self-hosted web application for managing files and folders」,查询日期 2026-10-30)。它把一个服务器的某个目录(本地磁盘)或远端存储(S3/FTP 等)变成一个可通过浏览器访问的文件工作台:登录后可以上传、下载、压缩、解压、复制、移动、重命名、在线编辑与删除文件,并按用户分配不同的主目录(homedir)与权限(read/write/upload/download/zip/chmod 等)。
与「文件分享服务」(如 Chibisafe、Gokapi 这类以「生成外链给别人下载」为核心的产品)不同,FileGator 的核心动词是**「管理」**:它没有匿名的公开分享链接机制,所有下载动作都必须在登录会话内发生。这决定了它的典型用户是「团队/家庭内部文件工作台」「服务器文件的 Web 化管理入口」,而不是「对外发文件」。
项目由 Milos Stojanovic(alcalbg)发起并维护,采用 MIT 许可,允许商业使用。
💡 技术拓展:「Web 文件管理器」与「文件分享服务」是自托管文件赛道上两个容易混淆的子类。前者的关键词是会话内管理(多用户、权限、目录树操作),代表产品除 FileGator 外还有 Tiny File Manager、FileRun 等;后者的关键词是外链分发(匿名上传页、短链、过期时间),代表产品是 Chibisafe、Gokapi、PicoShare。选型第一步应先回答「文件给谁用」:给内部团队长期管理选前者,给外部人员临时收发选后者。FileGator 属于前者,且是前者中「多用户 + 存储适配器」能力最完整的一档。
三、核心架构
FileGator 采用单体 PHP 应用 + 服务容器(DI Container)的架构,按官方仓库源码结构(backend/Services 目录,2026-10-30 查询)可拆为 8 个可插拔服务域,均通过 configuration.php 以「接口 → 适配器 → 配置」三元组方式装配:
| 服务域(接口) | 默认适配器 | 职责 |
|---|---|---|
| Storage(Filesystem) | Flysystem Local | 统一存储抽象:本地目录/FTP/S3/Dropbox 等均通过 League Flysystem 适配器接入 |
| Auth | JsonFile | 认证与用户库:默认 JSON 文件存用户,可换 LDAP/数据库适配器 |
| Router | 内置 Router | 前端路由分发:以 ?r=/端点 的查询参数形态承载 JSON API |
| Session | Symfony NativeSession | 会话存储(PHP 原生文件会话,SameSite=Lax + HttpOnly Cookie) |
| Tmpfs | Tmpfs | 分块上传临时区与打包临时区(带垃圾回收,默认 2 天过期) |
| Archiver | ZipArchiver | 压缩/解压(ZipArchive) |
| Security | Security | CSRF 防护、IP 黑白名单 |
| Logger | MonoLogger | 日志(Monolog,写 private/logs/app.log) |
这个「一切皆适配器」的设计是 FileGator 区别于多数同类(如 Tiny File Manager 这类单文件脚本)的最大架构差异:存储与认证均可替换。例如把 Storage 适配器从 Local 换成 S3 后,整个文件树的读写、上传、压缩都无缝落在对象存储上(官方 README 列出的可选适配器:Local, FTP, Amazon S3, Dropbox, DO Spaces, Azure Blob 及其他 Flysystem 生态适配器,来源官方 README,2026-10-30)。
前端是编译后的 Vue.js 单页应用(构建产物在 dist/ 目录),与 PHP 后端仅通过 JSON API 通信;API 带统一的前置安全层——所有 GET 请求在响应头下发 X-CSRF-Token,所有 POST 请求必须回带该头,否则请求被直接终止。
四、功能特性
按官方 README 列举并对照仓库源码(2026-10-30):
- 全量文件操作:复制、移动、重命名、删除、创建文件/目录、在线编辑(可编辑扩展名可配)、预览。
- 上传体验:拖拽上传、进度条、暂停/续传;上传分块(默认 1MB/块)且并发(默认 3 路),因此可突破服务器单请求体积限制传大文件。
- 压缩与批量下载:多选文件/目录打包 zip 下载(batchdownload),或 zip/unzip 到指定目录。
- 多用户与权限:admin/user/guest 三角色;每用户独立 homedir(可隔离到子目录甚至不同存储适配器实例);7 项细粒度权限(read/write/upload/download/batchdownload/zip/chmod)按用户授予。
- 多种认证后端:默认 JSON 文件,官方同时内置 LDAP 与数据库(mysqli)适配器(Dockerfile 中显式编译 ldap/mysqli 扩展)。
- 多种存储后端:Flysystem 生态全量适配器(Local/S3/FTP/Dropbox/Azure Blob 等)。
- 安全机制:登录失败锁定(默认 5 次失败锁 15 秒)、CSRF 防护、IP 黑白名单、private 目录 .htaccess 拒绝直接访问。
- 界面配置:应用名/Logo/语言/日期格式/分页档位/可编辑扩展名/归档默认名等均可在配置的 frontend_config 段调整。
明确不具备的能力(选型时需注意):无匿名公开分享外链、无文件版本历史、无在线办公文档协作、无断点续传的断电持久化之外的校验和机制、不含全文搜索(仅按文件名搜索)。
五、快速开始(最小可用示例)
以下为官方 README 给出的单命令启动方式(来源:官方仓库 README「Quick start」节,查询日期 2026-10-30,未在本文复测;生产部署与验证过程见本专栏《FileGator v7.16.8 Docker Compose 部署指南》):
docker run --rm -p 8080:8080 filegator/filegator
启动后访问 http://127.0.0.1:8080,官方 README 明确默认管理员账号为 admin / admin123(README 原文「login as admin/admin123」,2026-10-30 实查)。首次登录后应立即修改密码。
目录约定(来源:官方 Dockerfile,2026-10-30):
/var/www/filegator/repository:默认存储根(所有文件落在这一目录及其子目录)/var/www/filegator/private:用户库 users.json、日志、会话与上传临时区(该目录内容不应公开)- 容器内监听 8080(Apache + PHP 8.3),以 www-data 用户运行
六、适用场景与限制
适用场景:
- 团队内部文件工作台:为每个成员开账号、分 homedir 与权限,替代散落在各处的 SFTP 账号。
- 服务器文件的 Web 化管理入口:管理员在浏览器里完成日常的文件巡查、编辑、打包、清理,替代 SSH+命令行。
- 对象存储的「人味」界面:把 S3 桶挂成 Storage 适配器后,给不熟悉 AWS 控制台的成员一个图形化入口。
- 个人私有云盘的底座:结合 LDAP/数据库认证可并入已有账号体系。
限制与前置认知(来源:官方 README「Limitations/FAQ」与源码,2026-10-30):
- 不支持符号链接(受 Flysystem Local 适配器约束,README 明确说明)。
- 无公开分享外链——对外发文件场景应选分享型产品(见下节对比)。
- 默认配置上传上限 100MB(frontend_config.upload_max_size,可调);分块上传依赖 PHP 会话与临时区,多实例水平扩展时需共享会话与 tmpfs。
- 官方镜像基于 Apache + mod_php,单机形态;未见官方 Kubernetes Chart(Docker Hub 与官方仓库 2026-10-30 实查)。
- PHP 会话驱动默认落在容器本地文件系统,重启容器会话失效(数据不受影响,均在挂载卷内)。
七、同类选型对比
把 FileGator 与同赛道四个常见选项放在一起对比(星数均为 shields.io 徽章 2026-10-30 实查值;「平台专栏」列仅对本站已有专栏的组件给出可点击链接,无专栏的不硬链):
| 维度 | FileGator | copyparty | Gokapi | FileRise | Chibisafe |
|---|---|---|---|---|---|
| GitHub 星数(2026-10-30) | 3.1k | 47k | 2.9k | 1k | 2.8k |
| 技术栈 | PHP 8.3 + Vue | Python 单文件 | Go | PHP + Vue | Node.js(Next.js + Fastify) |
| 类型定位 | 多用户 Web 文件管理器 | 多协议媒体/文件服务器(WebDAV/FTP/SMB/HTTP) | 一次性外链分享(Lightweight Dropbox 替代) | Web 文件管理器 + 上传/分享 | 自托管文件上传/分享服务 |
| 多用户/权限 | 强(3 角色 × 7 权限 × homedir) | 中(账户+权限目录) | 管理员为主,少用户模型 | 中(用户 + 目录权限) | 中(账户/ApiKey/公开上传页) |
| 匿名外链分享 | 无 | 有(可配) | 核心能力(过期/限次下载) | 有 | 核心能力(短链/直链/相册) |
| 存储后端 | Flysystem 全家桶(Local/S3/FTP/…) | 本地为主(多挂载点) | 本地 + S3 + SQLite 元数据 | 本地 + S3 | 本地 + S3 |
| 分块/续传上传 | 有(分块+并发+暂停续传) | 有 | 无(单请求,限大文件需调参) | 有(分块) | 有(分块) |
| 部署形态 | Apache+PHP 官方镜像;无官方 k8s Chart | 单文件 Python,依赖极简 | 单 Go 二进制/镜像 | PHP 官方镜像 | 三服务组合(前端+后端+Caddy) |
| 典型场景 | 内部团队文件工作台 | 个人多媒体中心+万能文件入口 | 对外临时发大文件 | 轻量文件管理+分享 | 对外收发文件、上传页 |
选型建议:
- 需要「多用户、按权限隔离、把存储换成 S3」的管理型场景 → FileGator 是 PHP 栈里最完整的选择;若团队只有 Python 诉求且想要一个文件搞定一切,看 copyparty。
- 需要「把文件发给外部的人,带过期和次数限制」→ Gokapi/Chibisafe 型,FileGator 不适用。
- 想要「管理 + 分享」双能力各取其一 → 常见组合是 FileGator(内管)+ Gokapi(外发),两者体量都很小可同机共存。
- 本站已有专栏的同类组件可参考:《Chibisafe 介绍与选型指南》(分享型代表,其部署见《Chibisafe v6.7.0 Docker Compose 部署指南》);bewCloud(1.2k 星)是集成云套件(含文件/日历/联系人)的另一个方向,未建专栏前不做深链。
八、参考链接
- 官方仓库:https://github.com/filegator/filegator (README、configuration_sample.php、Dockerfile,查询日期 2026-10-30)
- 官方网站与在线演示:https://filegator.io (查询日期 2026-10-30)
- Docker Hub:https://hub.docker.com/r/filegator/filegator (tags 与更新时间,查询日期 2026-10-30)
- 星数/活跃度取证:https://img.shields.io/github/stars/filegator/filegator 、https://img.shields.io/github/last-commit/filegator/filegator/master (查询日期 2026-10-30)
- 存储适配器生态:https://flysystem.thephpleague.com (查询日期 2026-10-30)