You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache服务器文件上传失败:Uppy传156MB文件返回413错误

大文件上传返回413错误的排查与解决(Apache+PHP 8.0环境)

1. 检查Apache核心请求体限制

Apache自带的LimitRequestBody指令会限制请求体的最大大小,部分发行版默认可能设置了较小上限(或被虚拟主机配置覆盖)。需要在Apache主配置文件(如httpd.conf)或对应虚拟主机的配置块中添加:

LimitRequestBody 163840000  # 对应约156MB,换算公式:156 * 1024 * 1024 ≈ 163840000字节

修改后务必重启Apache服务生效。

2. 确认PHP配置的实际生效情况

通过php -i查看的是CLI环境的php.ini,而Apache加载的PHP模块可能使用不同的配置文件:

  • 在网站根目录创建info.php,内容如下:
<?php phpinfo(); ?>
  • 访问该文件,找到Loaded Configuration File项,确认Apache实际使用的php.ini路径。
  • 修改这个路径下的php.ini,设置post_max_size、upload_max_filesize等参数后,重启Apache,再刷新info.php验证参数是否更新。

3. 排查mod_reqtimeout模块影响

若Apache启用了mod_reqtimeout,其RequestReadTimeout指令可能因上传速度过慢中断请求。可在Apache配置中调整参数:

RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

如果确认是该模块导致的问题,也可以临时禁用模块进行测试(不推荐长期禁用)。

4. 检查虚拟主机的独立限制配置

虚拟主机配置文件(如httpd-vhosts.conf或/etc/apache2/sites-available/下的站点配置)中可能存在独立的限制规则,覆盖全局设置:

  • 检查虚拟主机块内是否有LimitRequestBody指令;
  • 检查是否存在php_value类指令(如php_value upload_max_filesize 2M),这类指令会直接覆盖php.ini的配置。

5. 验证PHP临时目录权限

PHP上传文件时需要写入临时目录(可通过info.php中的upload_tmp_dir查看路径),确保该目录对Apache运行用户(通常为www-data、apache或httpd)具备读写权限,权限不足可能导致上传失败。

6. 排查其他安全与防火墙限制

除modsecurity外,还需检查:

  • modsecurity的其他规则是否拦截了大文件请求;
  • 服务器所在云平台的WAF、防火墙是否设置了请求体大小上限;
  • 服务器本地防火墙是否有相关限制规则。

内容的提问来源于stack exchange,提问作者fahad shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:35:17