在 WordPress 后台上传主题、插件或媒体文件,进度还没走完就出现 413 Request Entity Too Large,这通常不是文件损坏,也不是 WordPress 权限问题,而是请求在进入 PHP 之前就被限制了。
真正容易绕晕的地方在于,上传请求可能依次经过 CDN、Nginx、PHP 和 WordPress。只改其中一层,页面上的限制数字可能变了,实际上传仍然失败。

413先查Nginx请求体限制
Nginx 的 client_max_body_size 控制客户端请求体大小,官方默认值为 1m。上传文件超过当前限制时,Nginx 会直接返回 413,请求通常还没有到达 PHP。
先检查配置中是否已经设置:
sudo nginx -T 2>/dev/null | grep -n client_max_body_size
nginx -T 会输出实际加载的完整配置,比只打开某个站点文件更可靠。面板环境可能在主配置、站点配置或额外引用文件中重复设置,真正生效的是请求所在上下文最终采用的值。
在正确的server中修改
例如需要允许最大 64MB 的上传,可以在目标站点的 server 中设置:
client_max_body_size 64m;
该指令可用于 http、server 或 location。放在全局会影响所有站点,放在目标 server 更容易控制范围。不要为了省事设置为 0,因为这会关闭请求体大小检查,失去一道资源保护。
修改后先测试语法,再平滑重载:
sudo nginx -t
sudo systemctl reload nginx
只有 nginx -t 通过后才能重载。 配置写错时继续强行操作,可能让原本正常的网站一起受到影响。
PHP还有两道上传限制
请求通过 Nginx 后,PHP 还会检查 upload_max_filesize 和 post_max_size。后者必须大于前者,因为一次 POST 请求除了文件本身,还包含表单和协议开销。
一个比较清晰的配置关系是:
upload_max_filesize = 64M
post_max_size = 72M
memory_limit = 256M
这里的数值只是示例,要按实际用途调整。PHP 官方文档说明,post_max_size 太小时,大请求可能让 $_POST 和 $_FILES 直接变为空。单纯在 WordPress 插件里修改上传限制,也无法突破 PHP 在接收请求前已经执行的限制。
为什么改了php.ini仍然不生效
一台服务器可能同时安装多个 PHP 版本,命令行 PHP 和网站使用的 PHP-FPM 也可能读取不同配置。先在 WordPress 站点实际使用的 PHP 环境中确认配置,而不是只执行 php -i 就下结论。
常见面板会为每个 PHP 版本维护独立的 php.ini。修改后需要重载对应的 PHP-FPM 服务,服务名可能是 php8.2-fpm、php-fpm 或面板自定义名称。
可以通过 WordPress 站点健康信息、临时的 phpinfo() 页面或 PHP-FPM 配置确认 Loaded Configuration File。临时诊断页面用完要立刻删除,避免暴露服务器路径和扩展信息。
还要排除CDN和代理层
网站前面接入 CDN、WAF、负载均衡或另一层反向代理时,外层也可能限制请求大小。此时源站配置完全正确,经过域名上传仍失败,而直接访问受控的源站测试入口可能成功。
排查重点是对比响应头、错误页面样式和每一层日志,确认 413 到底由谁返回。不要一看到 413 就同时修改所有设备,否则问题解决后也不知道是哪一层起作用。
没有配置权限时怎么办
虚拟主机或受限环境可能不允许修改 Nginx 和 PHP-FPM,只能联系服务商调整,或改用 SFTP、面板文件管理等方式上传后再安装。长期需要上传备份、大型主题或媒体文件,自主管理的云服务器会更方便。
准备迁移时,可根据现有网站体积、备份大小和 PHP 版本选择配置,像 萤光云 与 LightNode 这类可自行管理环境的平台,都适合先搭建同版本测试站,确认上传、固定链接和插件任务正常后再切换域名。
修改后要做三次验证
先上传一个明显小于限制的文件,确认基本上传功能正常;
再上传接近目标大小但仍低于限制的测试文件;
最后检查 Nginx 访问日志、错误日志和 PHP 日志,确认没有新的 413、超时或临时目录错误。
后台显示的最大上传尺寸只是 PHP 层给出的信息,真正验收标准是目标文件能够完整上传、解压和使用。主题或插件上传成功后还应检查文件权限,媒体文件则要确认缩略图生成正常。
常见问题
413和WordPress文件权限有关吗?
通常无关。413多发生在请求体大小检查阶段,权限错误更常表现为无法创建目录、无法移动上传文件或写入失败。
client_max_body_size应该设置多大?
按实际最大文件留出少量余量即可,不建议无限放大。常见内容站可从 32MB 或 64MB 起,再结合备份和媒体需求调整。
修改配置后需要重启服务器吗?
不需要重启整台服务器。Nginx语法检查通过后平滑重载,再重载对应的PHP-FPM服务即可。


