作曲家安装的内存限制

Posted

技术标签:

【中文标题】作曲家安装的内存限制【英文标题】:Memory limit on composer installation 【发布时间】:2020-06-01 11:12:21 【问题描述】:

我在数字海洋中有一个云,它有 1 GB 的内存。 我需要安装一个docker、laravel、mysqlnginx环境,我找到了laradock并正常安装了,但是在容器中运行composer时,我返回了内存限制错误。

错误运行:composer install

root@b9864446a1e1:/var/www/site# composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)

mmap() failed: [12] Cannot allocate memory

mmap() failed: [12] Cannot allocate memory
php Fatal error:  Out of memory (allocated 677388288) (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Fatal error: Out of memory (allocated 677388288) (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

尝试更改内存时出错。

警告:您的内核不支持交换限制功能或 cgroup 未安装。内存有限,无交换。

【问题讨论】:

这能回答你的问题吗? Composer update memory limit 否,执行更新命令时出现以下错误!!! mmap() 失败:[12] 无法分配内存 mmap() 失败:[12] 无法分配内存 PHP 致命错误:phar:///usr/local/ 中的内存不足(已分配 266338304)(尝试分配 4096 字节) bin/composer/src/Composer/Package/Loader/ArrayLoader.php 第 241 行致命错误: phar:///usr/local/bin/composer/src 中的内存不足(已分配 266338304)(试图分配 4096 字节) /Composer/Package/Loader/ArrayLoader.php 第 241 行 你在 VPS 上运行吗? 是的,在数字海洋中有 1gb 内存的云。 【参考方案1】:

这可能是因为 VPS 内存不足并且没有启用交换空间

free -m

total used free shared buffers cached
Mem:  xxxx xxx xxxx x x xxx
-/+ buffers/cache: xxx xxxx
Swap: 0 0 0

要启用交换,您可以使用例如:

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

您可以在this tutorial from DigitalOcean 之后创建一个永久交换文件。

【讨论】:

最后一条命令失败并显示消息swapon: /var/swap.1: swapon failed: Operation not permitted

以上是关于作曲家安装的内存限制的主要内容,如果未能解决你的问题,请参考以下文章

OSX composer 增加内存限制

修正“严重错误:允许使用X字节的内存大小用尽(尝试分配X字节)”,并且使用作曲家安装

如何设置java内存限制

软件安装docker 限制内存和 cpu

软件安装docker 限制内存和 cpu

软件安装docker 限制内存和 cpu