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

IIS部署Laravel WebAPI遇413请求实体过大错误求助

解决IIS部署Laravel WebAPI时的413 Request Entity Too Large错误

你已经调整了php.ini和IIS的uploadReadAheadSize,但仍遇到413错误,可能还有以下几个配置项需要检查:

  • 检查IIS站点的请求筛选设置
    打开IIS管理器,定位到你的WebAPI站点,找到「请求筛选」功能,点击右侧的「编辑功能设置」,在弹出的窗口中调整「最大允许内容长度(字节)」。60MB对应的字节数是62914560,可以设置为这个值或更大(比如70MB对应的73400320),保存后重启站点。

  • 确认Laravel内部的限制
    检查项目中是否存在自定义中间件对请求大小做了校验,比如某些中间件可能会判断request()->getContentLength()并返回413错误。另外,虽然少见,但也可以确认app/Http/Middleware/VerifyCsrfToken.php没有额外的请求大小限制逻辑。

  • 验证FastCGI配置(若使用PHP FastCGI)

    1. 在IIS管理器中找到站点的「处理程序映射」,找到PHP对应的FastCGI处理项,右键选择「编辑」→「请求限制」,确保「允许的内容长度」没有设置过小的值。
    2. 也可以直接编辑applicationHost.config文件,确保FastCGI的requestTimeout设置足够(比如300秒),避免因请求处理超时间接引发问题,示例配置:
      <system.webServer>
        <fastCgi>
          <application fullPath="C:\PHP\php-cgi.exe" requestTimeout="300">
            <environmentVariables>
              <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" />
            </environmentVariables>
          </application>
        </fastCgi>
      </system.webServer>
      
  • 确认php.ini修改是否生效
    在项目根目录创建phpinfo.php文件,内容为:

    <?php phpinfo(); ?>
    

    访问该文件,查看upload_max_filesize、post_max_size是否和你设置的一致。有时候会不小心修改了错误的php.ini文件(比如CLI版本和FastCGI版本的配置文件路径不同),这一步可以验证配置是否真正生效。

  • 检查服务器级别的请求筛选
    除了站点级的设置,还要检查IIS服务器根节点的「请求筛选」设置,确保服务器级的「最大允许内容长度」没有覆盖站点的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:31:27