php的composer占用内存不够导致失败

背景

公司的测试环境突然composer失败,原因是内存不够编译失败

PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/composer/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/composer/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.

目前有二种解决思路

  1. 采用Swap虚拟内存来增加内存,使用Swap确实是可以,但是还是时不时失败,那么这个解决思路放弃,想要尝试这个方式的小伙伴可以去我博客找Swap相关文章
  2. 采用php限制内存
    1. 竟然系统不满足资源,那么我们就要让它限制到系统能给到的最大资源
    2. 限制php.ini的内存
    3. 使用composer加上资源限制

解决方案

第一步:

打开php.ini配置文件,找到memory_limit选项,按系统资源进行限制

memory_limit = 1024M

第二步

使用composer命令时,前面加上 COMPOSER_MEMORY_LIMIT=-1

COMPOSER_MEMORY_LIMIT=-1 composer install

   转载规则


《php的composer占用内存不够导致失败》 江松泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
docker-compose安装gitlab docker-compose安装gitlab
创建相关目录mkdir -p /data/docker-app/gitlab 编写docker-compose.ymlcd /data/docker-app/gitlab vim docker-compose.yml version: '
2021-09-15
下一篇 
新建swap缓存内存分区没生效 新建swap缓存内存分区没生效
划分了swap分区,但在内存很高时,swap的使用率仍是0 查看系统内存参数vm.swappiness vm.swappiness:控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。值越大,表示越积极使用swap分区
2021-08-31
  目录