我试图通过运行下面的命令将HWIOAuthBundle添加到我的项目中。

composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle

HWIOAuthBundle github: https://github.com/hwi/HWIOAuthBundle

当我试图运行作曲家要求,我得到了内存错误。

Using version ^0.6.0@dev for hwi/oauth-bundle Using version ^1.2@dev for php-http/guzzle6-adapter Using version ^1.10@dev for php-http/httplug-bundle ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220

我尝试在我的php.ini文件中设置内存限制为2G,但没有工作。我找到我的php.ini通过运行php -i | grep php.ini


当前回答

我使用php7.2,大小默认设置为memory_limit = 512M。 要增加大小,需要定位php.ini。

在Wamp中,它位于C:\wamp64\bin\php\php7.2.23\php.ini。请注意PHP版本,因为它是名称文件夹,在我的情况下,我有php7.2.23

在Laragon中,它位于C:\ Laragon \bin\php\php-7.2.23- win32 - vc15 -x64\php.ini中。

如果您不想允许无限的空间,您可以设置任何您方便的大小,在我的例子中,我使用memory_limit = 2G

如果希望允许无限空间,可以更改为memory_limit = -1

其他回答

我已经绕过了Homestead Laravel(流浪)虚拟机运行composer命令之前的COMPOSER_MEMORY_LIMIT=-1的问题:

例子

要更新Composer:

COMPOSER_MEMORY_LIMIT=-1 composer update

安装软件包:

COMPOSER_MEMORY_LIMIT=-1 composer require spatie/laravel-translatable

最近发现,Composer在具有大量历史标记的包上消耗了大量CPU +内存。看到作曲家/作曲家# 7577

这个问题的解决方法是使用symfony/flex或https://github.com/rubenrua/symfony-clean-tags-composer-plugin

composer global require rubenrua/symfony-clean-tags-composer-plugin

有时问题出在作曲家的内存限制上。在我的情况下,我尝试增加php内存限制,但仍然得到错误。 您可以使用COMPOSER_MEMORY_LIMIT=-1来解决这个问题。 把它用作前缀:

COMPOSER_MEMORY_LIMIT=-1 composer require the/library

以后还得再加上前缀。

希望这能有所帮助。

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.

Set memory_limit to -1 works for me;) (vim /etc/php/7.2/cli/php.ini)

我在这里将有用且被接受的答案压缩或打包成可重用(zsh)别名/函数,以便更快更容易记住重用:

# composer high-memory
composermem() {
  php -r "echo ini_get('memory_limit').PHP_EOL;"
}
alias composerbig='COMPOSER_MEMORY_LIMIT=-1 composer $1'

(php作曲家。Phar已经在系统上别名为composer)。