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

Railway部署Laravel上传应用遇NGINX 413错误,求设20MB限制

解决Laravel Sail Docker镜像NGINX 413请求实体过大问题(设置20MB上传限制)

你当前的docker-compose.yml存在配置错误:把NGINX的client_max_body_size参数放到了extra_hosts字段下——这个字段仅用于映射主机名,完全不会生效。以下是两种可行的解决方案:

方案一:挂载自定义NGINX配置文件(无需修改Dockerfile)

  1. 在项目根目录创建配置目录:
    mkdir -p docker/nginx/conf.d
    
  2. 在该目录下新建upload_limit.conf文件,写入NGINX配置:
    client_max_body_size 20M;
    
  3. 修改docker-compose.yml中laravel.test服务的volumes部分,添加配置文件挂载:
    volumes:
        - '.:/var/www/html'
        - './docker/nginx/conf.d:/etc/nginx/conf.d' # 新增此行
    
  4. 重启容器生效:
    sail down && sail up -d
    

方案二:修改Dockerfile内置配置(适合固化镜像的场景)

  1. 打开./docker/8.2/Dockerfile,在NGINX安装完成的步骤后,添加以下命令:
    RUN echo "client_max_body_size 20M;" > /etc/nginx/conf.d/upload_limit.conf
    
  2. 重新构建镜像并启动容器:
    sail build --no-cache
    sail up -d
    

同步配置Laravel/PHP的上传限制

仅修改NGINX还不够,PHP自身也有上传大小限制,需要同步调整:

  1. 打开项目根目录的.env文件,修改或添加以下变量:
    UPLOAD_MAX_FILESIZE=20M
    POST_MAX_SIZE=20M
    
  2. 重启容器让PHP配置生效。

完成以上步骤后,你的应用即可支持最大20MB的文件上传。

内容的提问来源于stack exchange,提问作者Andrés Romero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:47:15