登录
首页 >  文章 >  php教程

宝塔修复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上传文件大小限制_修改PHP与Nginx上传上限

WordPress上传失败,报错“文件超过最大允许大小”或直接空白,根本不是WordPress的问题——是宝塔的PHP和Nginx两层限制没对齐,缺一不可。

修改PHP的upload_max_filesizepost_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_timemax_input_time300,否则大文件上传中途超时,页面卡住或返回500
  • 改完点「保存」后,务必点「重载配置」——只点「重启PHP」可能不加载新ini,面板里这个按钮实际执行的是bt reloadservice 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 12nginx -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_timememory_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学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>