首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP Composer更新“无法分配内存”错误(使用Laravel 4)

PHP Composer更新“无法分配内存”错误(使用Laravel 4)
EN

Stack Overflow用户
提问于 2013-08-08 08:58:48
回答 20查看 241.7K关注 0票数 189

我就是解决不了这个问题。

我正在使用Linode 1G内存的基本计划。试图通过Composer安装一个包,但它不允许。我在PHP.ini上的内存限制设置为"-1“

我还能做些什么来安装它吗?

代码语言:javascript
复制
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing thujohn/rss (dev-master df80a7d)
    Downloading: 100%         
PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975

Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2013-10-04 18:49:55

有点旧,但以防新人正在寻找解决方案,更新您的PHP版本可以解决这个问题。

此外,您应该提交您的composer.lock文件,并在资源消耗较少的生产环境中进行composer安装。

更多详细信息请访问:https://github.com/composer/composer/issues/1898#issuecomment-23453850

票数 113
EN

Stack Overflow用户

发布于 2014-07-09 16:11:45

看起来你的交换内存用完了,试试这个

代码语言:javascript
复制
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

正如@BlackBurn027在下面的评论中提到的那样,这个解决方案在here中进行了描述

票数 439
EN

Stack Overflow用户

发布于 2017-12-29 23:27:24

正如composer troubleshooting guide here所述,这可能是因为VPS内存不足,并且没有启用交换空间。

代码语言:javascript
复制
free -m

要启用交换,您可以使用以下命令:

代码语言:javascript
复制
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

或者,如果上述方法不起作用,您可以尝试创建交换文件

代码语言:javascript
复制
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
票数 120
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18116261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档