我们在使用 composer update xxx 更新 php 包时或者使用 composer require xxx 下载 php 包时,当composer包过大或者电脑内存太小的时候会就出现内存超出,内存溢出异常 Allowed memory size of xxx 如下

PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

1638329046

 特别是 composer 1.x 版本特别容易出现建议升级 composer 2.x 版本。

composer内存超出解决方案

  • 升级composer为v2.x版本

  composer升级到2.x版本和降级

  • 定义环境变量COMPOSER_MEMORY_LIMIT (推荐)

    COMPOSER_MEMORY_LIMIT=-1 composer <...>
  • 使用命令行参数模式 (推荐)

    php -d memory_limit=-1 composer.phar <...>
  • 修改php配置参数 (不推荐)

    memory_limit = -1

 使用以上三种 任意一种 方案可以完美解决 composer 内存超出 Allowed memory size of xx 异常。