最稳妥直接修改的配置文件是 C:\phpEnv\config\nginx\nginx.conf,需在 http { } 块内、include mime.types; 后添加 client_max_body_size 2048M;,并同步调整 php.ini 中 upload_max_filesize、post_max_size 和 memory_limit,最后通过命令 nginx -s reload 重载配置。

直接改哪个配置文件最稳妥
phpEnv 是 Windows 下的轻量级 PHP 环境套件,内置 Nginx,但它的配置结构和宝塔、LNMP 不同:Nginx 配置**不按站点拆分**,所有虚拟主机共用一个 nginx.conf,路径通常是 C:\phpEnv\config\nginx\nginx.conf(具体以你安装路径为准)。
你不需要找“某个网站的 conf”,也不用进面板点来点去——phpEnv 没有图形化网站管理模块。
- 修改前先备份原文件
- 一定要加在 http { } 块内,不能塞进 events 或裸露在顶层
- 如果已存在 client_max_body_size 行,直接改数值;没有就新增一行,位置放在 include mime.types; 后面比较安全
client_max_body_size 的单位和写法陷阱
这个值看似简单,但错一个字符就导致nginx -t 报错或静默失效:
- 单位只认 k、M、G(必须大写),100m 或 100MB 会解析失败
- 数值和单位之间**不能有空格**,100 M 是非法语法
- 不支持小数,2.5G 会报错,得写成 2500M
- 别用科学计数法,1e9 无效
示例正确写法:client_max_body_size 2048M;为什么改了 Nginx 还是 413 或 502
Nginx 只是第一道关卡,PHP 层还有三处硬限制必须同步调整: -upload_max_filesize(php.ini):单个文件上限,比如设为 2048M
- post_max_size(php.ini):整个 POST 请求体上限,必须 ≥ upload_max_filesize,建议设为 2048M 或 2100M
- memory_limit(php.ini):至少要比 post_max_size 大,否则 PHP 解析时内存溢出,设 2560M 更稳妥
改完 php.ini 后,必须在 phpEnv 主界面点击【重启 PHP】(不是重启 Nginx),否则 PHP 不加载新参数
上传中途断连?别漏掉超时配置
大文件上传慢,Nginx 默认 60 秒就断连接,用户会看到卡在 80% 然后报错: - 在同一个http { } 块里,顺手加上这两行:
client_body_timeout 300s;client_header_timeout 300s;
- 如果用了 PHP-FPM(phpEnv 默认就是),还要检查 php-fpm.conf 或 pool 配置里的 request_terminate_timeout,不能小于上传预期耗时,建议设为 300
- 浏览器端上传控件(如 WebUploader、Plupload)也要确认自身 timeout 设置是否匹配
真正容易被忽略的是:Nginx 配置改完必须执行 nginx -s reload(在 phpEnv 的 Nginx 目录下运行),而 phpEnv 界面点【重启 Nginx】有时只是 stop + start,可能跳过配置重载逻辑。



















