宝塔面板修改上传限制需同步调整PHP的upload_max_filesize和post_max_size,并重启PHP服务,同时配置Nginx的client_max_body_size或Apache的LimitRequestBody,最后实测验证。

宝塔面板里改上传限制,本质是改 PHP 的 upload_max_filesize 和 post_max_size 两个值,但只改 php.ini 文件不够——必须通过宝塔界面操作或重启 PHP 服务,否则修改不生效。
在宝塔面板里直接修改 PHP 配置(推荐)
这是最安全、最不容易出错的方式。宝塔会自动校验值的合法性,并写入对应版本的 php.ini,还顺带帮你重启 PHP。
- 进入「软件商店」→ 找到已安装的 PHP 版本(如
PHP-7.4或PHP-8.2)→ 点击「设置」 - 切换到「配置修改」选项卡,找到
upload_max_filesize和post_max_size这两项 -
post_max_size必须 ≥upload_max_filesize,常见配对是:upload_max_filesize = 128M,post_max_size = 150M - 改完点「保存」,宝塔会提示「正在重启 PHP 服务」,等状态变绿即生效
手动编辑 php.ini 文件的注意事项
如果你用命令行或 FTP 直接改了 /www/server/php/XX/etc/php.ini,但上传还是失败,大概率是因为没重启 PHP 或改错了位置。
- 确认你编辑的是当前网站所用 PHP 版本的
php.ini(比如站点用PHP-8.1,就别去改PHP-7.4的文件) - 检查是否漏改
max_execution_time和max_input_time:大文件上传耗时长,建议设为300或更高 - 改完必须执行
service php-fpm-XX restart(XX 是版本号,如81),或在宝塔界面点「重载配置」 - 用
php -i | grep "Loaded Configuration File"确认实际加载的php.ini路径,避免改错文件
上传仍失败?检查 Nginx/Apache 的请求体限制
PHP 层面调大了,但 Web 服务器可能拦在前面。宝塔默认对 Nginx 做了 client_max_body_size 限制,Apache 则看 LimitRequestBody。
立即学习“PHP免费学习笔记(深入)”;
- Nginx 场景:进入「网站」→ 点击对应站点 → 「配置文件」→ 在
server块内加入client_max_body_size 128m;(注意单位是m,不是M) - Apache 场景:同上进配置文件,在
<Directory>或<VirtualHost>内加LimitRequestBody 134217728(单位是字节,128MB = 134217728) - 改完必须点击「保存」并「重载 Nginx」或「重启 Apache」,否则不生效
验证修改是否真正生效
别只信 phpinfo() 页面显示的值,要实测。上传一个略大于设定值的文件(比如设了 128M,就传个 130MB 的 zip),观察报错类型:
- 报
413 Request Entity Too Large→ Nginx 层拦截,回头查client_max_body_size - 报
Unknown error或页面空白 → PHP 超时,检查max_execution_time和max_input_time - 报
File upload error: 1→upload_max_filesize或post_max_size不够,或没重启 PHP - 用
php -r "echo ini_get('upload_max_filesize').PHP_EOL;"在终端验证 CLI 模式下的值(注意:CLI 和 FPM 可能用不同php.ini)
最容易被忽略的是:改完 PHP 配置后忘记重载 Web 服务,或者多个 PHP 版本共存时改错了目标版本的 php.ini。上传限制是 PHP + Web 服务器 + 浏览器超时三者共同作用的结果,少一个环节都可能卡住。



















