我正在使用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行
答案 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,一切都很好。