宝塔文件管理器上传大文件提示请求超时,通常是因为面板自身限制、Nginx 请求体拦截或 PHP 执行超时三重关卡未同步调整。最推荐的处理方向是同时修改面板 config.json 上传上限、站点 Nginx 配置中的 client_max_body_size 以及 PHP 的 upload_max_filesize 与 max_execution_time 参数,适用于宝塔 v7.9.0 及以上版本,风险边界在于修改配置后必须重启对应服务否则不生效。
先说结论:解决超时需同步放开面板、Nginx、PHP 三层限制,仅改其一必然失败。
- 先确认:检查报错是 413 Request Entity Too Large 还是 504 Gateway Time-out,前者是大小限制,后者是超时限制。
- 先处理:依次修改面板 config.json、站点 Nginx 配置、PHP 配置文件,确保单位统一。
- 再验证:执行 bt restart 重启面板,重载 Nginx 与 PHP 服务,尝试上传略小于设定值的文件。
命令速用版
通过 SSH 登录服务器,执行以下命令快速修改面板上传限制并重启服务:
vim /www/server/panel/data/config.json
# 修改 upload_max_size 值为所需大小(单位 MB)
bt restart
若需调整 Nginx 限制,在站点配置文件中添加:
client_max_body_size 2048m;
client_body_timeout 300;
为什么会这样
上传超时或失败是因为请求经过了面板后台、Web 服务器、PHP 解释器三道关卡,任意一层限制未放宽都会拦截请求。宝塔面板 v7.9.0 及以上版本在后台服务中硬编码了文件管理器上传上限,默认 100MB,与 Nginx、PHP 完全无关。Nginx 默认 client_max_body_size 为 1MB,超过直接返回 413 错误,PHP 根本没机会执行。PHP 层又有 upload_max_filesize 控制单文件上限,max_execution_time 控制脚本执行时长,任一不足都会导致中断。
分步处理
按顺序检查并修改以下三处配置,确保数值匹配且服务重载。
1. 修改宝塔面板自身上传限制
使用 SSH 登录服务器,编辑面板配置文件:
vim /www/server/panel/data/config.json
查找字段"upload_max_size",若存在则修改值,若不存在则在根对象内新增一行:
"upload_max_size": 2048,
注意单位是 MB,确保 JSON 语法合法(逗号位置正确),保存退出后执行 bt restart 重启面板服务。
2. 调整 Nginx 请求体与超时限制
进入宝塔面板→网站→对应站点→配置文件,在 server 块内、location 块外部添加:
client_max_body_size 2048m;
client_header_timeout 300;
client_body_timeout 300;
单位用小写 m,保存后点击「重载配置」。若面板本身通过域名 +SSL 访问,需在面板绑定的网站配置中也添加同样指令。
3. 同步调整 PHP 配置
进入宝塔面板→软件管理→PHP→设置→配置修改,确认以下参数:
upload_max_filesize = 2048M
post_max_size = 2048M
max_execution_time = 1800
max_input_time = 1800
单位必须是大写 M,post_max_size 必须≥upload_max_filesize。检查网站根目录是否存在.user.ini,如有需删除里面关于这两个参数的行。改完点击「重载 PHP」。
怎么验证是否生效
在面板「文件」管理器中,尝试上传一个略小于设定值的文件(如设定 2048MB,上传 1900MB 的 zip)。若仍失败,查看面板错误日志:
tail -n 50 /www/server/panel/logs/request.log | grep "413"
若日志中出现 413 Request Entity Too Large,说明 Nginx 层限制仍未解除。若出现 upload size exceed limit 或类似提示,说明 config.json 未生效或格式错误。也可通过 phpinfo.php 页面查看 PHP 配置是否已更新。
常见坑
- JSON 语法错误:修改 config.json 时末尾逗号处理不当会导致面板无法启动,编辑前建议备份。
- 单位混淆:Nginx 配置常用小写 m,PHP 配置必须用大写 M,面板 config.json 单位是 MB 数值。
- .user.ini 覆盖:网站根目录下的.user.ini 会覆盖 php.ini 设置,需检查并清理。
- 服务未重载:修改配置后仅保存不重启或不重载,进程不会读取新配置,必须执行 bt restart 或点击面板重载按钮。
- 反向代理遗漏:若宝塔面板通过 Nginx 反向代理访问,代理层的配置也需同步调整 client_max_body_size。
常见问题
上传提示 413 Request Entity Too Large 怎么办?
这是 Nginx 拦截的典型错误,需优先检查站点配置文件中是否添加了 client_max_body_size 指令并确保值足够大。
大文件上传有没有更稳定的替代方案?
对于超过 500MB 的文件,建议直接使用 scp 或 rsync 命令从本地直连服务器传输,避免 Web 端超时中断。
修改配置后上传进度条卡在 99% 是什么原因?
通常是 PHP 层 post_max_size 小于 upload_max_filesize 导致表单提交整体被拒,或 max_execution_time 不足导致脚本执行超时。
参考来源
- 宝塔面板文件管理器无法上传大文件怎么办_修改 PHP 与 Nginx 上传限制
- 宝塔面板文件管理器无法上传大文件?调整宝塔面板面板设置中的限制
- 如何提升宝塔面板文件管理效率_使用 SSH 命令与 Web 端结合操作
- 如何解决宝塔面板上传大文件提示 413 超载_修改 PHP 上传限制与 Nginx 客户端请求体大小
- 宝塔面板下 PHP 上传大文件提示"413 Request Entity Too Large"?
- 宝塔 PHP8.4 上传超时_延长 PHP8.4 上传超时时间操作【技巧】