413错误主因是Web服务器(如小皮默认Nginx)在PHP前拦截请求体,需在站点配置的server块中添加client_max_body_size 200m;并重载Nginx配置,同时确保PHP的upload_max_filesize、post_max_size和memory_limit同步调大且已重载生效。

小皮面板(phpStudy)里改了 php.ini 但上传仍报 413 Request Entity Too Large,说明问题根本不在 PHP 层——Nginx 或 Apache 还在前端拦截了请求体。PHP 配置只是第二道关卡,第一道是 Web 服务器本身。
确认是不是 Nginx 拦的(最常见)
小皮默认用 Nginx + PHP-FPM 组合。即使你调大了 upload_max_filesize 和 post_max_size,只要 Nginx 的 client_max_body_size 没改,它会在请求进 PHP 前直接返回 413。
- 打开小皮面板 → 网站 → 你的站点 → 配置文件
- 在
server { }块开头附近添加一行:client_max_body_size 200m;(注意结尾分号) - 保存后,点击右上角「重载配置」(不是重启,也不是只重启 PHP)
- 别加在
http{}或location{}里——小皮部分版本对层级敏感,server块最稳
检查 PHP 配置是否真生效了
改完 php.ini 后,很多人漏掉关键一步:没让 PHP-FPM 重新加载配置。
- 在小皮面板 → PHP → 设置 → 配置修改,确认以下三项都已修改且单位一致:
upload_max_filesize = 200Mpost_max_size = 200Mmemory_limit = 256M(建议 ≥ upload_max_filesize × 1.2) - 改完点「保存」后,必须点「重载 PHP」按钮(不是「重启」)
- 新建一个
phpinfo.php文件,内容为,访问它,搜索upload_max_filesize,看显示值是否是你设的
小皮特殊路径和缓存干扰
小皮多个 PHP 版本共存,容易改错配置文件;浏览器或代理也可能缓存了旧的 413 响应。
- 在小皮 PHP 设置页,点「配置文件」旁的「打开」按钮,确保你编辑的是当前网站正在用的那个 PHP 版本的
php.ini - 用命令行验证 Nginx 是否读到新配置:
cd /path/to/xp/nginx && ./nginx.exe -t(Windows)或sudo nginx -t(Linux/macOS),提示 success 才算写对位置 - 绕过浏览器,用 curl 直接测:
curl -v -F "file=@test.zip" http://localhost/upload.php
其他可能原因
超大文件(如 >500MB)还涉及缓冲与超时,光放开大小不够。
- 在站点 Nginx 配置的
location ~ \.php块内,加这几行:fastcgi_buffers 256 16k;fastcgi_buffer_size 128k;fastcgi_connect_timeout 300;fastcgi_send_timeout 3600;fastcgi_read_timeout 3600; - 如果用了反向代理、CDN 或防火墙(如宝塔的 WAF),它们也可能自带上传限制,需单独排查
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











