413错误是nginx在php之前拦截请求所致,因请求体超限未转发给php-fpm;需同步修改nginx的client_max_body_size、php.ini的upload_max_filesize和post_max_size,并按序重载服务。

413错误是Nginx在PHP之前就拦下了请求
看到413 Request Entity Too Large,别急着改php.ini或config.inc.php——这个错误压根没进PHP,是Nginx在请求刚抵达时就拒绝了。你上传的SQL文件体积超过了Nginx允许的请求体上限,它连包都没转发给PHP-FPM。
验证方法很简单:curl -I http://你的域名/phpmyadmin/。如果响应头里有Server: nginx且状态码是413,说明问题就在Nginx层;如果是500或空白页,才轮到查PHP。
必须同步改三个地方:Nginx、upload_max_filesize、post_max_size
漏掉任意一个都会失败,而且顺序不能反:
-
nginx.conf里,在server块或更精准的location /phpmyadmin块内加:client_max_body_size 200M(别只写在http块,容易被子块覆盖) -
php.ini中改两项:upload_max_filesize = 200M,post_max_size = 200M(注意:post_max_size必须≥upload_max_filesize,否则PHP自己会丢弃整个POST) - 改完后必须重载服务:
sudo systemctl reload nginx+sudo systemctl restart php8.2-fpm(版本号按你实际用的填)
宝塔面板用户最容易踩的坑
宝塔下配置分散,改错位置是常态:
- PHP配置要进「PHP管理」→ 选对版本 → 「配置修改」页改,不是去改全局
/www/server/php/82/etc/php.ini(那个可能是CLI版) - Nginx配置要进「网站」→ 点对应站点 → 「配置文件」里找
location ~ \.php$或location /phpmyadmin块,把client_max_body_size加进去 - 改完别只点「重载PHP」,必须再点一次「重载Nginx」——只重启PHP-FPM,Nginx仍卡着413
- 单位写
200M,别写200MB(大写B会报语法错误)
超过500MB的SQL文件,别硬调参数
参数调太高不等于能稳导入,反而可能触发超时、内存溢出或被WAF拦截:
- 用命令行直导最可靠:
mysql -u root -p database_name ,完全绕过Web层限制 - 拆分大文件更可控:
split -b 100M dump.sql part_,再逐个在phpMyAdmin里导入 - 如果必须走界面,记得同步调高
max_execution_time = 600和memory_limit = 512M,否则上传成功后执行阶段照样崩
真正卡住人的,从来不是哪几行配置怎么写,而是搞不清请求在第几层被截断。先curl -I看响应头,再查/var/log/nginx/error.log,比盲目改配置快得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











