先确认phpenv真实生效的php.ini路径,再同步修改post_max_size与upload_max_filesize(前者须≥后者),并重启web服务;同时检查.htaccess、web服务器限制(如client_max_body_size)及memory_limit是否匹配。

phpEnv 下改不了 post_max_size?先确认配置文件位置
phpEnv 是 Windows 环境下集成 PHP + Apache/Nginx 的便携式环境,它的 php.ini 不在系统默认路径(如 /etc/php.ini),而是在 phpEnv 安装目录下的 php\php_version\php.ini(例如 D:\phpEnv\php\php-8.2.12\php.ini)。直接改错文件是常见失败原因。
验证当前生效的配置文件:在 phpEnv 启动的 Apache 或 Nginx 下建一个 info.php,内容为 <?php phpinfo(); ?>,访问后搜索 Loaded Configuration File,看到的路径才是真实生效的 php.ini。
- 不要修改 phpEnv 根目录下可能存在的同名模板文件(如
php.ini-development) - 如果用的是 Nginx + PHP-FPM 模式,需确保改的是 PHP-FPM 对应版本的
php.ini,不是 CLI 版本的 - 改完后必须重启 phpEnv 的「Web 服务」(不是只点「重启 PHP」),否则 Apache/Nginx 进程仍加载旧配置
post_max_size 和 upload_max_filesize 必须配对调,且有大小关系
单独调大 post_max_size 没用——只要表单里带文件上传,PHP 就会同时校验这两个值。其中 post_max_size 是整个 POST 请求体上限(含所有字段 + 所有文件),upload_max_filesize 是单个文件上限。两者必须满足:post_max_size >= upload_max_filesize,且建议前者比后者至少大 1–2M(留出表单字段开销)。
- 例如要传 50M 文件,设
upload_max_filesize = 50M,则post_max_size = 52M或64M更稳妥 - 若还报 413 Request Entity Too Large,说明 Web 服务器层也拦了:Apache 需检查
LimitRequestBody,Nginx 则看client_max_body_size(phpEnv 默认用 Apache,一般不用动;但若手动切过 Nginx,必须同步改) - 别忽略
memory_limit:它得 ≥post_max_size,否则 PHP 解析 POST 数据时内存不够直接崩溃
改完不生效?检查是否被 .htaccess 或运行时函数覆盖
phpEnv 默认启用 Apache 的 .htaccess 支持,某些程序(如 WordPress、phpMyAdmin)会在子目录放自己的 .htaccess,里面可能用 php_value 覆盖了你的 php.ini 设置。这类覆盖优先级更高,且错误写法(如漏空格、单位错写成 mb)会导致整行失效但无提示。
- 查
.htaccess是否存在类似php_value upload_max_filesize 32M的行,注释掉或删掉 - 避免用
ini_set()动态改这两个值:它们属于PHP_INI_PERDIR类型,运行时调用ini_set('post_max_size', '64M')会静默失败(返回 false),毫无作用 - 如果用了 phpMyAdmin,它自身还有
config.inc.php里的$cfg['UploadDir']等逻辑,但那不影响底层上传限制,只是导入方式不同
Windows 下单位和语法容易踩的坑
phpEnv 在 Windows 上跑,php.ini 对空格、单位大小写、分号注释更敏感。比如 post_max_size=64M 可以,但 post_max_size = 64 m(带空格+小写 m)就无效;又或者该行前面不小心加了 ; 变成注释,自己却没发现。
- 单位只认
K/M/G(大写),不接受kb、mb、g - 等号两侧不要加空格:
upload_max_filesize=128M✅,upload_max_filesize = 128M❌(部分版本会忽略) - 改完务必用
php -c "D:\phpEnv\php\php-8.2.12\php.ini" -i | findstr "post_max_size upload_max_filesize"命令行验证 CLI 模式是否读取正确(排除 web 服务未重启的干扰)
client_max_body_size。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











