当Composer -d memory_limit参数大于1.5G时将被忽略

时间:2018-07-10 08:30:45

标签: php composer-php

运行composer时,当内存消耗达到1.5G时,该命令将耗尽内存。 即使通过传递显式的memory_limit php -d memory_limit=-1 composer.phar ...  ,它在1.5G内存不足。看来只是忽略了传递的参数。

当我传递一个较低的值(125m)时,它将在该限制下耗尽内存。 我的Windows机器上仍然有剩余的内存,因此这不是系统限制。

版本为1.6.5。我的php.ini内存限制设置为-1。

还有其他人遇到这种情况吗?为什么使用1.5G时composer的内存不足?

2 个答案:

答案 0 :(得分:1)

在作曲者troubleshoot页上,您可以看到几个解决此问题的选项。

您可以在运行composer命令之前设置COMPOSER_MEMORY_LIMIT环境变量:

COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>

或者您使用命令行参数进行设置:

php -d memory_limit=-1 composer.phar <...>

如果您在php.ini文件中设置了内存限制,则该值也应由作曲家使用。您可以通过运行以下命令来查看当前的内存限制:

php -r "echo ini_get('memory_limit').PHP_EOL;"

希望它会有所帮助:)

答案 1 :(得分:1)

我为有兴趣的人找到了解决方案。

似乎Windows的php 32位版本很难限制为消耗2G的ram内存。如果您的应用程序超过2G,它将停止。

对我来说,解决方案是切换到我的PHP安装的64位版本。 64位版本的内存限制为3G。