问题现象
在后台直接上传插件包,进度条走到一半弹出 413,换小一点的包又能成功。
原因分析
请求体超过 Nginx 或 PHP 的限制,两个位置任一没放开都会在网关层被拦。判断时先分清是 插件上传 413 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。
处理步骤
- 先调 Nginx 的请求体上限
- 再同步 PHP 的上传与表单上限
- 最后确认面板配置没有覆盖
对应的命令或配置片段如下,可直接复制:
client_max_body_size 64m; # php.ini upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300
排查时把每一步的输出留下来,后面再遇到同类问题,对照日志就能判断是哪一层先出错的。改动前把原配置备份一份,出问题时能马上回退,比现场找原因省时间。
验证结果
插件包能完整上传并进入安装界面,不再出现 413。