You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx服务器无法上传总大小超6MB的多图问题求助

解决Nginx+PHP多文件上传大小限制问题

我来帮你一步步揪出这个问题的根源——你已经调整了upload_max_filesize和client_max_body_size这两个核心配置,但还有几个容易被忽略的细节可能在偷偷限制你的上传大小:

1. 检查PHP的post_max_size配置

这个配置是控制整个POST请求的总大小上限,它必须大于或等于upload_max_filesize,而且要能覆盖你上传的多文件总大小(比如你要传总12M的文件,至少设成15M以上)。

  • 找到你的PHP配置文件(常见路径:/etc/php/8.0/fpm/php.ini,根据你的PHP版本和运行环境调整)
  • 修改配置:post_max_size = 15M(或者更大的数值,比如20M)
  • 重启PHP-FPM服务生效:sudo systemctl restart php-fpm(如果是Apache环境就重启Apache)

2. 确认Nginx配置的生效范围

你在nginx.conf里设置了client_max_body_size,但很多时候站点级的配置文件(比如/etc/nginx/sites-available/your-site.conf)会覆盖全局配置:

  • 打开你的站点专属Nginx配置文件,检查是否存在client_max_body_size的设置,如果有,改成和全局一致或更大的数值(比如30M)
  • 先验证Nginx配置合法性:sudo nginx -t
  • 验证通过后重启Nginx:sudo systemctl restart nginx

3. 排查PHP-FPM的局部配置覆盖

如果你的服务器用的是PHP-FPM,部分池配置文件可能会单独设置上传限制:

  • 打开PHP-FPM的池配置(比如/etc/php/8.0/fpm/pool.d/www.conf)
  • 检查是否有php_admin_value[upload_max_filesize]或php_admin_value[post_max_size]这类行,如果有,确保数值足够大
  • 重启PHP-FPM服务

4. 检查应用层的自定义限制

如果以上配置都没问题,那可能是你用的上传脚本或框架本身有硬编码限制:

  • 比如WordPress要检查「媒体设置」里的最大文件大小
  • 自定义PHP脚本的话,看看有没有用$_FILES['file']['size']做判断的代码,有没有硬写的6MB阈值

5. 验证配置是否真正生效

最后可以创建一个phpinfo.php文件,内容如下:

<?php phpinfo(); ?>

访问这个文件,搜索upload_max_filesize、post_max_size,确认这些值已经变成你设置的数值;同时可以查看Nginx的响应头,确认client_max_body_size配置生效。

如果还是没解决,去看Nginx错误日志(/var/log/nginx/error.log)和PHP-FPM错误日志(/var/log/php-fpm.log),里面会有具体的错误提示(比如「request body is too large」),能帮你精准定位问题。

内容的提问来源于stack exchange,提问作者Rushikesh Shirkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:11:58