最稳方式是直接修改 php.ini,但需先用 php --ini 和 phpinfo() 分别确认 CLI 与 Web 模式生效路径,编辑对应文件的 memory_limit(如 512M),保存为 UTF-8 无 BOM,再通过 phpEnv「Restart All」重启服务,最后用 test_mem.php 验证 CLI 与 Web 输出是否一致。

直接改 php.ini 是最稳的方式,但 phpEnv 作为 Windows 下的便携式 PHP 环境,配置路径和重启逻辑和标准安装略有不同,容易改错位置或漏重启。
确认当前生效的 php.ini 路径
phpEnv 可能同时存在多个 php.ini:CLI 模式用一个,Web 模式(如集成的 Apache/Nginx)用另一个。不确认清楚就乱改,常出现“改了没生效”的情况。
- 在命令行执行
php --ini,看Loaded Configuration File的路径 —— 这是 CLI 脚本用的 - 在 phpEnv 自带的 Web 界面(通常是
http://127.0.0.1/phpinfo.php)里打开phpinfo(),搜索memory_limit,再往上找Loaded Configuration File—— 这才是 Web 请求实际加载的 - 常见陷阱:改了 CLI 的
php.ini,但你的脚本是通过浏览器访问的,结果完全没变
修改 phpEnv 中的 memory_limit 值
找到正确的 php.ini 后,编辑它,搜索 memory_limit 行(通常在 “Resource Limits” 小节),直接改数值即可。
- 推荐值:对大型 CSV 处理或 Laravel Artisan 命令,设为
memory_limit = 512M;若调试阶段需彻底放开,可临时设为memory_limit = -1(仅限本地) - 注意单位大小写:
512M有效,512m无效;1G也合法,但部分旧版 phpEnv 不识别G单位,优先用M - 改完必须保存,且不能留 BOM 头(用 Notepad++ 或 VS Code 以 UTF-8 无 BOM 格式保存)
重启 phpEnv 的服务组件
phpEnv 不是改完 php.ini 就自动生效的。它内部管理 Apache/Nginx + PHP-FPM(或 mod_php),需要手动重载。
立即学习“PHP免费学习笔记(深入)”;
- 打开 phpEnv 主界面,点击右上角「Restart All」按钮 —— 这是最可靠的方式,会一并重启 Web 服务和 PHP 进程
- 如果只跑 CLI 脚本(比如用命令行执行
php script.php),只需关掉当前终端、新开一个即可(CLI 不缓存php.ini) - 切勿只重启浏览器或刷新页面:Web 服务没重启,
php.ini修改不会加载
验证是否真正生效
别依赖“我以为改好了”,一定要用运行时实际值验证,因为 phpEnv 有可能读取了错误的 ini 文件,或被其他层覆盖。
- 新建一个
test_mem.php,内容只有一行:<?php echo ini_get('memory_limit'); ?> - 通过浏览器访问它,输出应为
512M(不是128M或-1) - 如果 CLI 和 Web 输出不一致,说明你改的是其中一个配置,得回去核对
php --ini和phpinfo()的路径 - 额外提醒:某些 phpEnv 版本在「PHP Extensions」页里提供图形化修改
memory_limit的入口,但底层仍写入对应php.ini,建议优先手动编辑更可控
真正卡住人的往往不是“怎么改”,而是改了哪个文件、服务有没有真重启、CLI 和 Web 是否用了同一套配置 —— 这三点不捋清,调半天也白搭。



















