最直接有效的解法是php -d memory_limit=-1 composer install,因composer本质是php脚本,内存受php进程限制,-1可绕过默认128m/256m限制且命令结束即失效;需注意cli与web配置分离、docker内存配额、ci中应设2g等上限,避免oom。

直接在安装时加内存限制参数,就能绕过 Composer 默认的内存限制报错。
安装前设置 Composer 内存上限
Composer 默认可能只允许 1.5GB 以内内存,而 Laravel 10 的依赖解析较重,容易触发 Allowed memory size exhausted。最简单有效的办法是临时取消内存限制:
- Linux/macOS:运行
COMPOSER_MEMORY_LIMIT=-1 composer create-project laravel/laravel:^10.0 myapp - Windows(CMD):运行
set COMPOSER_MEMORY_LIMIT=-1 && composer create-project laravel/laravel:^10.0 myapp - Windows(PowerShell):运行
$env:COMPOSER_MEMORY_LIMIT="-1"; composer create-project laravel/laravel:^10.0 myapp
配合国内镜像加速并降低资源压力
国内直连 Packagist 极易超时或中断,叠加内存不足会反复失败。建议同步配置腾讯云 Composer 镜像:
- 执行
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 验证是否生效:
composer config -l | grep repo.packagist,应显示腾讯云地址 - 镜像能显著减少网络请求和临时解压开销,间接缓解内存紧张
清理缓存再试(尤其重试失败后)
Composer 缓存损坏或碎片化也会加剧内存占用:
- macOS/Linux:
rm -rf ~/.composer/cache - Windows:
del /s /q %COMPOSER_HOME%\cache - 清完再执行带
COMPOSER_MEMORY_LIMIT=-1的安装命令
PHP 自身内存限制也要检查
Composer 是 PHP 脚本,它受 PHP 的 memory_limit 约束。即使设了 COMPOSER_MEMORY_LIMIT=-1,若 PHP.ini 中 memory_limit = 128M,仍会失败:
- 运行
php --ini找到加载的php.ini路径 - 打开该文件,将
memory_limit改为512M或-1(仅限安装阶段,生产环境勿设为 -1) - 保存后重启终端或 Web 服务(如用 Artisan serve,需重启命令)











