我试图通过运行下面的命令将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


当前回答

在我的情况下,我试图安装Laravel框架没有说明xampp服务器(或apache服务器)在我的windows系统,我得到以下错误

致命错误:允许的1610612736字节内存耗尽

当我启动xampp服务器(或apache服务器)时,它就开始安装laravel框架,错误就消失了。

所以有时候你必须检查这个,否则它会比平时花费更长的时间,消耗更多的内存,结果大小会被耗尽。

其他回答

我在这里将有用且被接受的答案压缩或打包成可重用(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)。

在Windows xampp我只是改变:

;memory_limit=512M 

在php.ini中:

memory_limit =-1

然后通过xampp重新启动Apache

结果如下:

; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit =-1
;memory_limit=512M

对我来说,这适用于共享托管。

COMPOSER_MEMORY_LIMIT=-1 composer update

如果增加内存限制没有帮助或您没有太多内存

在另一台高内存的机器上

将composer的内存限制设置为-1 删除作曲家。锁文件 运行composer install 提交作曲家。锁定文件到您的回购 然后在服务器上运行composer install

这个想法是在计算/创建composer时使用了大部分内存。锁文件,如果它的创建/就绪- composer安装将不会使用太多内存。

Centos 7使用:

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