更新作曲家时出现内存不足错误

问题描述 投票:-2回答:1

我想为laravel项目更新作曲家,我有2个项目,并且首先更新了工作,但在其他方面出现此错误:

 >php -d memory_limit=-1  C:/composer/composer.phar  update --verbose --profile
[5.6MB/0.01s] Loading composer repositories with package information
[5.8MB/1.17s] Updating dependencies (including require-dev)
[581.3MB/35.03s] Dependency resolution completed in 0.006 seconds
VirtualAlloc() failed: [0x00000008] Not enough memory resources are available to process this command.
VirtualFree() failed: [0x000001e7] Attempt to access invalid address.
PHP Fatal error:  Out of memory (allocated 1631584256) (tried to allocate 12288 bytes) in 
phar://C:/composer/composer.phar/src/Composer/Package/Loader/ArrayLoader.php on line 56

Fatal error: Out of memory (allocated 1631584256) (tried to allocate 12288 bytes) in 
phar://C:/composer/composer.phar/src/Composer/Package/Loader/ArrayLoader.php on line 56

我尝试了很多解决方案,例如更改memory_limit或删除供应商文件,但对我不起作用。如何解决此问题?

laravel composer-php out-of-memory
1个回答
0
投票

解决很多依赖项时,作曲家可能会占用大量内存。为了使其具有如此大的内存容量,可以采取以下步骤:

  1. [As Apokryfos mentioned确保您运行的是64位PHP,而不是32位。因为32位仅支持2GB内存(3GB if configured for it
  2. 允许PHP占用更多内存(来源:the composer troubleshoot page):
    • 调整php.ini中的memory_limit
    • 或通过php -d memory_limit=-1运行作曲家>
  3. 如果您在虚拟机中运行作曲器,请确保计算机本身具有足够的可用内存。 Laravel项目通常带有Homestead。为了配置可用内存,您可以在memory中调整homestead.yaml file键。
  4. 此外,如果您在Linux环境中运行作曲器,则应检查if enough swap space if available
  5. 我建议在2G4G内存之间的任意位置,以使作曲家正常工作。如果问题仍然存在,则可能是其他原因导致内存泄漏。

    您已经确定了步骤2,但无论如何我都将其包括在内,以便其他人获得完整的图片。

© www.soinside.com 2019 - 2024. All rights reserved.