作曲家更新麻烦

时间:2014-07-20 00:53:23

标签: laravel composer-php

我正在使用laravel + composer。我正在加载方式/生成器包,当我运行composer update时,给我这个错误:

  

使用包信息加载作曲家存储库更新   依赖(包括require-dev)

     

致命错误:允许的内存大小为536870912字节耗尽(尝试过   在中分配67108864个字节)   药业:///usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php   在第170行

6 个答案:

答案 0 :(得分:8)

这是因为composer update使用了所有内存。我想。

php -dmemory_limit = 1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar update

这适用于Mac。

还要检查使用composer install。

答案 1 :(得分:3)

如果您使用的RAM较少,如512MB,则需要创建交换内存。这是你在ubuntu上的表现方式

touch swap.img
chmod 600 swap.img

使用1GB进行交换

dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
mkswap /var/swap.img
swapon /var/swap.img

以下是完整文章https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps

答案 2 :(得分:1)

我在使用作曲家安装laravel时遇到了问题。 原始命令是:

composer global require "laravel/installer=~1.1"

错误信息是:

Loading composer repositories with package information Updating dependencies (including require-dev)

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php on line 170

以下命令应该有效:

php -dmemory_limit=1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar global require "laravel/installer=~1.1"

答案 3 :(得分:0)

我在阅读这篇文章后找到了解决方案:https://github.com/composer/composer/issues/1898

感谢“Dynom,2013年7月4日发表评论”

  

包管理器需要512MiB RAM已经有点多了,但是我   也超过它。有趣的是我超过512 MiB RAM(向上   当我使用my时,根据我的流程输出大约800 MiB RAM   私有Satis存储库(实际上它只是一个缓存所有人   Github公共存储库)。否则,我不会超过它。只是   添加我的满意的存储库,作曲家消耗近400 MiB的RAM

     

对于所有其他人在全球范围内提升他们的PHP CLI memory_limit,我   建议反对。相反,我建议把它放在命令中   线,像这样:

php -dmemory_limit=1G {composer location} update 

示例:

php -dmemory_limit=1G bin/composer.phar update
  

否则您可能会错过某些与意外相关的内存   在你自己的工作中的行为。

测试:Debian版本6

答案 4 :(得分:0)

你有最后一个版本的作曲家吗?我通过简单的更新解决了这个问题:

sudo composer self-update

答案 5 :(得分:0)

在我的情况下,我遇到了相同的问题,并设法停止了Apache和MySQL服务,然后通过composer安装了laravel应用程序。

sudo service stop apache2之后是sudo service stop mysql stop,这反过来杀死了正在消耗内存的应用程序,然后,我重新启动服务后就通过普通的composer命令继续安装Laravel,一切都很好。