Php Composer update`以下异常是由于内存不足和未配置交换引起的` vagrant中的错误

Php Composer update`以下异常是由于内存不足和未配置交换引起的` vagrant中的错误,php,memory,vagrant,composer-php,virtualbox,Php,Memory,Vagrant,Composer Php,Virtualbox,我在一个流浪的VirtualBox环境中安装了带有composer的php5.5 当我尝试任何作曲家的命令时,以下错误会随机出现: 以下异常是由于内存不足和未配置交换造成的 我该怎么解决这个问题呢?建议他们不会解决这个问题 这里有两个解决办法。您可以单独使用或同时使用两者 第一种解决方法:增加命令的内存限制 在流浪机器里。增加当前命令的php内存限制。运行: php -dmemory_limit=2G /path/to/composer update 第二种解决方法:增加客户机内存 将此配置添

我在一个流浪的VirtualBox环境中安装了带有composer的php5.5

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

以下异常是由于内存不足和未配置交换造成的

我该怎么解决这个问题呢?

建议他们不会解决这个问题

这里有两个解决办法。您可以单独使用或同时使用两者

第一种解决方法:增加命令的内存限制 在流浪机器里。增加当前命令的php内存限制。运行:

php -dmemory_limit=2G /path/to/composer update
第二种解决方法:增加客户机内存 将此配置添加到vagrant文件,以便临时增加分配的内存:

$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\u MEMORY=2048流浪重新加载


然后,在您的vagrant机器中,运行
composer update

转到php.ini文件并更新
内存限制为512MB或1G

这不是一个bug,请修复它-要启用交换,您可以使用例如:

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


希望它能帮助您:)

有时交换文件没有足够的内存用于编写器更新,所以请创建一个新文件:

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

更新composer后,您可以删除它并仅保留初始文件:

$ sudo swapoff /swapfile1
$ sudo rm /swapfile1

这解决了我的问题:

sudo/bin/dd if=/dev/zero of=/var/swap.1bs=1M count=1024 sudo/sbin/mkswap/var/swap.1 sudo/sbin/swapon/var/swap.1 这可能非常有用,可以解决问题。要永久添加到交换,请执行以下操作

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


更改VMs内存为我解决了这个问题。仅仅增加PHP的内存限制并没有起到作用。如果您有SSD,则不建议进行交换,因为这会造成损坏。使用fallocate和swapon创建的交换文件因参数无效而失败。像Alex那样使用dd可以解决我的问题。谢谢,如果你只需要临时更改,知道如何恢复它会很有用。按原样为我工作
$ sudo swapoff /swapfile1
$ sudo rm /swapfile1