必须修改phpenv自带的php.ini文件,同步调整upload_max_filesize和post_max_size(如256m和300m),单位用大写m,改后需完全退出并重启phpenv,再通过phpinfo确认生效路径与数值。

phpEnv 是 Windows 下的便携式 PHP 环境,修改上传限制必须改它自带的 php.ini,且要同步调 upload_max_filesize 和 post_max_size,只改一个没用。
找到 phpEnv 真正生效的 php.ini 文件
phpEnv 启动后不会自动加载系统路径里的 php.ini,它用的是自己解压目录下的配置文件。常见位置是:
-
C:\phpEnv\php\php.ini(主配置) - 或
C:\phpEnv\php\php-version\php.ini(按你启用的 PHP 版本子目录)
别信 php --ini 输出的 “Loaded Configuration File” —— phpEnv 的 CLI 模式和 Web 模式可能读不同文件。最稳妥方式:在 phpEnv 控制面板里点 “PHP 配置” 或 “打开 php.ini”,它会直接打开实际被 Web 服务加载的那个文件。改错地方是 phpEnv 下上传失败最常见的原因。
必须同时改两个参数,单位不能省
在打开的 php.ini 中搜索并修改这两行(注意等号前后不要有空格):
upload_max_filesize = 256M post_max_size = 300M
post_max_size 必须 ≥ upload_max_filesize,否则整个 POST 请求会在解析阶段被截断,连 $_FILES 都收不到;数值后必须带单位 M(兆字节),写成 256 或 256m(小写)都无效。phpEnv 不支持 0 或 unlimited。
phpEnv 的 Web 服务重启方式很特别
phpEnv 自带 Apache 或 Nginx 封装,但它的“重启”不是传统命令行操作:
- 关闭 phpEnv 主窗口右下角的托盘图标 → 点 “退出”
- 重新双击
phpenv.exe启动 - 不要只点“重启 Apache”,那通常不重载 php.ini
改完配置后,务必访问 http://127.0.0.1/phpinfo.php(或你自己建的 info.php),确认页面中 upload_max_filesize 和 post_max_size 的值已更新,且 “Loaded Configuration File” 路径指向你刚编辑的那个文件 —— 这步跳过,90% 的“改了没用”问题就出在这儿。
上传仍失败?检查 phpEnv 自带的 Apache 限制
phpEnv 默认用 Apache,它自身也有上传拦截机制,和 PHP 无关:
- 打开
C:\phpEnv\Apache\conf\httpd.conf - 搜索
LimitRequestBody,若存在且值太小(如LimitRequestBody 1048576即 1MB),把它注释掉或改成更大值:LimitRequestBody 314572800(300MB) - 保存后按上一步完整退出再重启 phpEnv
phpEnv 不带 Nginx 的 client_max_body_size 问题,但如果你手动替换了 Web 服务器,就得额外检查对应配置。另外,memory_limit 建议设为 post_max_size 的 1.5 倍以上,比如 memory_limit = 512M,否则大文件解析中途会因内存耗尽报错。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











