宝塔修复WordPress上传限制,修改PHP与Nginx设置
时间:2026-05-18 12:42:42 277浏览 收藏
WordPress在宝塔面板中上传大文件失败,根本原因在于PHP与Nginx双重限制未同步配置——仅修改PHP的`upload_max_filesize`(如256M)远远不够,必须同时确保`post_max_size`≥其值(建议设为280M以预留POST头开销),并在Nginx全局`http{}`块中正确添加`client_max_body_size 256m`(位置错误即失效),此外还需单独调整宝塔面板自身的`config.json`中`upload_max_size`字段并重启`bt-panel`服务;任何一环遗漏(如只改PHP不调`post_max_size`、Nginx指令加在`location`内、或未重载而仅重启服务)都会导致上传静默失败、413错误或卡在100MB;验证时务必通过真实大文件上传+Network面板状态码与日志追踪,而非仅依赖phpinfo显示。

WordPress上传失败,报错“文件超过最大允许大小”或直接空白,根本不是WordPress的问题——是宝塔的PHP和Nginx两层限制没对齐,缺一不可。
修改PHP的upload_max_filesize和post_max_size必须同步
这两个值在宝塔里改错顺序或数值关系,上传就会静默失败。常见错误是只改upload_max_filesize,却忽略post_max_size必须≥它。
post_max_size必须大于等于upload_max_filesize,建议固定配对:设upload_max_filesize = 256M,则post_max_size = 280M(留出POST头开销)- 在宝塔「软件商店」→ 找到当前站点所用的PHP版本 → 「设置」→ 「配置修改」里直接编辑,比手动改
/www/server/php/*/etc/php.ini更可靠 - 顺带调高
max_execution_time和max_input_time到300,否则大文件上传中途超时,页面卡住或返回500 - 改完点「保存」后,务必点「重载配置」——只点「重启PHP」可能不加载新ini,面板里这个按钮实际执行的是
bt reload或service php-fpm-xx reload
加client_max_body_size到Nginx配置,位置错了就白改
Nginx在请求进入PHP前就拦掉了,所以即使PHP全放开,上传仍报413错误。关键不是加不加,而是加在哪。
- 不要只改某个网站的配置文件;优先改全局Nginx主配置:
/www/server/nginx/conf/nginx.conf,在http{}块内(不是server{}或location{})添加:client_max_body_size 256m;(注意单位是小写m) - 如果用了宝塔7.9+,也可在「网站」→ 对应站点 → 「配置修改」里,在
server {开头后第一行插入该指令,但要确保缩进对齐,且不在任何location块内部 - 改完必须点「重载Nginx」,不是「重启」——重载才让配置实时生效;命令行可执行
bt 12或nginx -t && systemctl reload nginx - 若你的宝塔面板本身通过域名访问(比如绑定了
panel.example.com),还要去该站点的Nginx配置里同样加一遍client_max_body_size,否则面板「文件管理器」上传也会被拦
宝塔面板自身上传限制(文件管理器)需单独改config.json
很多人只调了PHP和Nginx,结果发现面板里的「文件」→「上传」按钮仍然卡在100MB——这是宝塔v7.9.0+版本新增的硬编码限制,和网站无关,得动它的主配置。
- SSH登录后执行:
vim /www/server/panel/data/config.json - 查找
"upload_max_size"字段:若存在,改为所需值(单位MB,如2048);若不存在,在JSON根对象内新增一行:"upload_max_size": 2048,(注意逗号,非最后一项才加) - 保存退出后,必须执行
bt restart(或systemctl restart bt-panel),仅重载Nginx或PHP无效 - 改完立刻测试:上传一个1.8GB的zip到面板「文件管理器」,别等网站功能,先确认面板底层是否通
验证时别只看phpinfo(),要抓真实请求响应
phpinfo页面显示值正确,不代表上传真能过——中间任意一层拦截都会让你白忙活。
- 上传一个略大于设定值的文件(比如设了256MB,就传260MB的zip),观察浏览器Network面板中上传请求的响应状态码:
- 返回
413 Request Entity Too Large→ Nginx层没生效,回头检查client_max_body_size位置和重载动作 - 返回
500或无响应 → PHP超时或内存不足,查max_execution_time、memory_limit(建议≥upload_max_filesize) - 前端弹窗提示
upload size exceed limit或控制台报Failed to load resource→ 面板config.json未生效或JSON格式错误(多一个逗号、少一个引号都会导致解析失败) - 日志快速定位:
tail -n 30 /www/server/panel/logs/request.log | grep "413\|upload"和tail -n 30 /www/server/php/*/logs/php-fpm.log | grep "timeout\|upload"
最常被绕过的其实是Nginx的client_max_body_size位置——加在location / { }里面,等于没加;还有人改了PHP但忘了post_max_size ≥ upload_max_filesize,PHP会悄悄截断而不报错。这两处一旦漏掉,其他所有操作都只是在给错误铺路。
到这里,我们也就讲完了《宝塔修复WordPress上传限制,修改PHP与Nginx设置》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!
相关阅读
更多>
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
280 收藏
-
419 收藏
-
268 收藏
-
363 收藏
-
430 收藏
-
176 收藏
-
496 收藏
-
461 收藏
-
185 收藏
-
453 收藏
-
283 收藏
-
209 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习