laravel composer update 内存不足

Posted

技术标签:

【中文标题】laravel composer update 内存不足【英文标题】:laravel composer update runs out of memory 【发布时间】:2015-01-07 03:25:01 【问题描述】:

我正在尝试使用 'php composer.phar update' 命令更新 laravel 存储库。但是我收到了这个错误-

- Removing symfony/translation (v2.4.8)
PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open():
 fork failed - Cannot allocate memory' in phar:///var/www/fyc/composer.phar/vend
or/symfony/console/Symfony/Component/Console/Application.php:983

我遇到了告诉禁用“xdebug”来解决这个问题的链接,但它没有安装在我的系统上。我正在使用 Ubuntu 14.04、PHP 5.5.18、Zend 2.5.0。链接是 -

How to disable XDebug

https://github.com/composer/composer/issues/1898(读取过去 15 天 cmets)

更新:我知道错误表示内存较少,但我看到一些线程说即使分配高达 7GB 也不起作用,并且他们的系统挂起。因此,我正在寻找替代解决方案。我的服务器位于符合 AWS 免费套餐条件的 EC2 实例上。不知道它为 RAM 提供了多少内存。

【问题讨论】:

尝试回滚到以前版本的作曲家,它对我有用! 试过了。不适合我。 【参考方案1】:

我发现有些东西可以解决这个问题-

1) 更新您的 PHP 版本。我认为 5.4.19 之前的版本不起作用。但请保持最新。

2) 禁用/注释 php.ini 文件中的“xdebug”(如果存在)。问题中有一个禁用它的链接。

3) 如果上述方法均无效,请尝试此方法。这对我有用在浪费了一个小时左右之后终于。

rm -rf vendor/

rm -rf composer.lock

php composer install --prefer-dist

4) 回滚到之前版本的作曲家。它对某些人有用。这可能是一个临时解决方案(因为您将来肯定想升级)。

5) 这是杀手这个也有效您可以使用硬盘创建一个 SWAP 内存。这意味着硬盘中的内存将用作额外的 RAM,但对它的访问会更慢(就像正常的硬盘访问一样)。这对于 RAM 非常少的 EC2 实例用户更有用。更多信息在这里 -

https://github.com/composer/composer/issues/945#issuecomment-12548720

http://www.the-tech-tutorial.com/adding-swap-to-any-ec2-instance/

【讨论】:

我尝试了#2、#3、#4 和#5,但没有成功。将 PHP 更新到 7.1 就成功了。与 5 系列相比,它在作曲家上消耗的内存要少得多。【参考方案2】:

您看到的错误

PHP 致命错误:未捕获的异常 'ErrorException' 带有消息 'proc_open(): fork 失败 - 无法在 phar:///var/www/fyc/composer.phar/vend 中分配内存 或/symfony/console/Symfony/Component/Console/Application.php:983

表示服务器从 RAM/内存中完全耗尽并不得不停止。更改您的 PHP memory_limit 不会解决这个问题。当 PHP 因为达到其内部内存限制而失败时,您会收到一个很好的“尝试分配总 XXXXXX 字节中的 XXX 字节”样式的错误消息。

Composer 在尝试解决版本依赖关系时会占用大量内存。我在这里尝试的三件事是

    重命名或删除您的vendor 文件夹并尝试重新安装而不是更新。当 Composer 不尝试解决与现有已安装版本的版本依赖关系时,它有时会更好地处理内存

    获取更多内存的服务器

    调查还有什么可能会占用您服务器上的大量 RAM

【讨论】:

以上是关于laravel composer update 内存不足的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 在我运行 composer update CLI artisan 之后出现问题

我无法运行 composer update 命令 laravel 5.3 项目

运行 composer update 报错

来自git clone的Laravel项目无法正常工作(无法使用key:generate或composer install / update)

`composer update` 不会更新到最新版本

composer update提供有关私有存储库元数据的404