PHP上传文件大小受限需同步修改php.ini中upload_max_filesize和post_max_size,且post_max_size≥upload_max_filesize;必须重启PHP服务,并检查.user.ini是否覆盖配置,最后通过phpinfo()和实际上传验证生效。
宝塔面板里 PHP 上传文件大小受限,本质是 php.ini 里两个关键参数没调对:一个是单次上传的文件上限 upload_max_filesize,另一个是整个 POST 请求体的最大容量 post_max_size。这两个值必须同时改,且 post_max_size ≥ upload_max_filesize,否则改了也没用。
确认当前限制值
先看实际生效的是哪个配置文件,避免改错地方:
- 在宝塔后台 → 网站 → 对应站点 → PHP 版本右侧的“设置” → “配置文件”,打开的就是当前站点使用的
php.ini - 或者直接运行
php -i | grep "Loaded Configuration File"查看 CLI 下加载的路径(注意:Web 环境通常用的是另一个,以宝塔面板里显示的为准) - 搜索
upload_max_filesize和post_max_size,记下当前值,比如默认可能是2M或8M
修改 upload_max_filesize 和 post_max_size
这两个参数必须一起调,且单位要一致(推荐用 M,别用 m 或 MB,PHP 只认 K/M/G):
-
upload_max_filesize = 64M(允许单个文件最大 64MB) -
post_max_size = 72M(必须 ≥ upload_max_filesize,留点余量给表单字段等其他 POST 数据) - 改完保存,**必须重启 PHP 服务**:宝塔后台 → 软件商店 → 找到对应 PHP 版本 → 点击“重启”
- 不重启,改了等于没改;只改一个,上传仍会失败
检查是否被 .user.ini 覆盖
宝塔默认会在网站根目录生成 .user.ini,它会覆盖部分 PHP 配置,优先级高于 php.ini: