Composer update`以下异常是由于缺少内存而没有在vagrant中配置swap`错误引起的

时间:2016-08-08 11:36:50

标签: php memory vagrant composer-php virtualbox

我在漫无目的VirtualBox环境中安装了作曲家的php5.5。

当我尝试任何作曲家的命令时,随机出现以下错误:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT LayoutParams.MATCH_PARENT); param.weight=1.0f;

我怎样才能解决这个问题?

5 个答案:

答案 0 :(得分:6)

这不是一个bug并予以解决-要启用交换,您可以使用例如:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

参考:https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

希望它会对您有所帮助:)

答案 1 :(得分:4)

This thread表示他们不会对此有任何解决方法。

以下是两个解决方法。您可以单独使用,也可以同时使用两者。

第一种解决方法:增加命令的内存限制

在流浪汉机器中。增加当前命令的php内存限制。运行:

The following exception is caused by a lack of memory and not having swap configured

第二种解决方法:增加客户机内存

将此配置添加到您的vagrant文​​件中,这样您就可以临时增加已分配的内存:

php -dmemory_limit=2G /path/to/composer update

然后重新加载你的流浪汉机器,如下所示:$MEMORY = ENV.has_key?('VM_MEMORY') ? ENV['VM_MEMORY'] : "512" Vagrant.configure("2") do |config| [...] config.vm.provider "virtualbox" do |v| [...] v.memory = $MEMORY [...] end [...] end

然后,在您的流浪汉机器中,运行VM_MEMORY=2048 vagrant reload

答案 2 :(得分:3)

这解决了我的问题:

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024  
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1

这可能是临时有用的,可以解决问题。永久添加以交换,请遵循this

查看设备上的可用内存:free -m

source

答案 3 :(得分:2)

有时交换文件的内存不足,无法更新作曲家,因此请创建一个新文件:

(假设现有的/ swapfile具有2G,使用8G的驱动器空间创建新的/ swapfile1)

$ sudo fallocate -l 8G /swapfile1
$ sudo chmod 600 /swapfile1

$ sudo mkswap /swapfile1
$ sudo swapon /swapfile1

在作曲家更新后,您可以将其删除并仅保留初始文件:

$ sudo swapoff /swapfile1
$ sudo rm /swapfile1

答案 4 :(得分:0)

转到php.ini文件并更新 memory_limit为512MB或1G