symfony - Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted
Solution:
To get the current memory_limit value, run:
php -r "echo ini_get('memory_limit').PHP_EOL;"
Try increasing the limit in your php.ini
file (ex. /etc/php5/cli/php.ini
for Debian-like systems):
; Use -1 for unlimited or define an explicit value like 2G
memory_limit = -1
Or, you can increase the limit with a command-line argument:
php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
To get loaded php.ini files location try:
php --ini
Another quick solution:
php composer.phar COMPOSER_MEMORY_LIMIT=-1 require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Or just:
COMPOSER_MEMORY_LIMIT=-1 composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Answer
Solution:
In my case I was trying to require this package when I got this error.
You can run like this, and you don't have to update the PHP INI file:
COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel
Answer
Solution:
Another solution from the manual:
Composer also respects a memory limit defined by the COMPOSER_MEMORY_LIMIT
environment variable:
COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
Or in my case
export COMPOSER_MEMORY_LIMIT=-1
composer <...>
Answer
Solution:
Same problem, none of anything related to "memory_limit" worked, but..
composer self-update --2
..solved my problem. (upgrade: 1.10.17 -> 2.0.4)
Answer
Solution:
On Windows 10;
Goto C:\ProgramData\ComposerSetup\bin
Edit: composer.bat
and add memory_limit=-1
in the last line as shown below.
@echo OFF
:: in case DelayedExpansion is on and a path contains !
setlocal DISABLEDELAYEDEXPANSION
php -d memory_limit=-1 "%~dp0composer.phar" %*
Problem solved ;)
Answer
Solution:
Since none of the previous answers included set
it took me a bit to figure out how to do it in Windows without altering the php.ini, but here's what worked for me:
set COMPOSER_MEMORY_LIMIT=-1
composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Answer
Solution:
I have bypassed the problem in a Homestead Laravel (vagrant) virtual machine running the composer commands preceded by COMPOSER_MEMORY_LIMIT=-1
:
Examples
To update Composer:
COMPOSER_MEMORY_LIMIT=-1 composer update
To install a package:
COMPOSER_MEMORY_LIMIT=-1 composer require spatie/laravel-translatable
Answer
Solution:
For this error in macOS Catalina and macOS Big Sur use this line:
php -d memory_limit=-1 /usr/local/bin/composer update --no-plugins
I used this line to update on Symfony 5. This command also worked with laravel 7.
Answer
Solution:
Just set the memory_limit
specifying the full route of your composer.phar file and update, in my case with the command:
php -d memory_limit=-1 C:/wamp64/composer.phar update
Answer
Solution:
Sometimes the problem is in the composer memory limit. In my case, I tried increasing the php memory limit but still got the error.
You can use COMPOSER_MEMORY_LIMIT=-1
to get around that.
Use it as a prefix:
COMPOSER_MEMORY_LIMIT=-1 composer require the/library
You have to prefix it again in the future.
Hope this helps.
Answer
Solution:
It was recently identified that Composer consumes high CPU + memory on packages that have a lot of historical tags. See composer/composer#7577
A workaround to this problem is using symfony/flex
or https://github.com/rubenrua/symfony-clean-tags-composer-plugin
composer global require rubenrua/symfony-clean-tags-composer-plugin
Answer
Solution:
Just in case you get a composer error with:
Could not open input file: composer
run:
php -d memory_limit=-1 /usr/local/bin/composer require ...
Answer
Solution:
For skipping memory limit and version error use the code below:
COMPOSER_MEMORY_LIMIT=-1 composer require <package-name> --ignore-platform-reqs
Answer
Solution:
what about windows?
i use windows 10 and this command worked for me,
php -d memory_limit=-1 "C:\ProgramData\ComposerSetup\bin\composer.phar" update
Answer
Solution:
For me, this works on shared hosting.
COMPOSER_MEMORY_LIMIT=-1 composer update
Answer
Solution:
Composer 2.0 preview is available now: https://github.com/composer/composer/releases
Fixed issue for me. You can set up a preview with composer self-update --preview
EDIT: Composer 2 with memory tuning released
Answer
Solution:
You can use a specific php Version when running Composer
If, like me, for some reason, you are using PHP 32 bits even though your computer is 64 bits, this will always limit the amount of memory allocated to Composer. I solved my problem this way:
- Install a 64 bits php version somewhere on your computer (let's say in C:/php64)
- In composer (using cygwin in my case), run:
COMPOSER_MEMORY_LIMIT=-1 C:/php64/php.exe ../composer.phar update
Answer
Solution:
in windows by xampp i just changed:
;memory_limit=512M
in php.ini to:
memory_limit =-1
then restart the Apache by xampp
this is the result:
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit =-1
;memory_limit=512M
Answer
Solution:
On Mac php 7.4
run
php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File: /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed: /usr/local/etc/php/7.4/conf.d/ext-opcache.ini,
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
If Additional .ini files parsed: memory_limit needs to be changed in
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
As Jose Seie writes, set memory to
memory_limit = -1 or memory_limit = 1G
Answer
Solution:
Just want to share my situation on this matter.
Problem context:
- Running composer in a vagrant box.
- Was getting this message after try to run composer require "laravel-doctrine/orm:~1.4.13":
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.
- Have tried setting php.ini memory limit to -1. (still not working).
Solution:
Apparently my composer.json and composer.lock has some issues. Ran $ composer validate, and the result was: "The lock file is not up to date with the latest changes in composer.json, it is recommended that you run
composer update
."So I ran $ composer update, and all dependencies are resolved. Imho, when the dependencies has some issues, maybe the tree building is out of sync, hence the out of memory issue.
Hope this helps anyone out there.
Answer
Solution:
To override this and fix the issue on your local machine you can do the following changes within your php.ini
configuration file.
- To locate your
php.ini
configuration file you can use the following command:php --ini
After running this command you should see an output like the following:
Configuration File (php.ini) Path: /usr/local/etc/php/7.3
Loaded Configuration File: /usr/local/etc/php/7.3/php.ini <---- note the path
Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed: /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
The file we want to change is the Loaded Configuration.
Open and search for the
memory_limit
you can set thememory_limit = -1
to give an unlimited amount of memory to PHP processes or you can set512MB, 1G, 2G, 5G,....
$ nano /usr/local/etc/php/7.3/php.ini
locate and set:
$ memory_limit = -1 or memory_limit = 1G
After saving your file, you can verify the PHP changes by running this command which will output the current memory settings in your
php.ini
file:php -r "echo ini_get('memory_limit').PHP_EOL;"
NOTE: After saving, the new memory will be working. You don't need to do anything else.
Answer
Solution:
for Centos 7 use :
COMPOSER_MEMORY_LIMIT=-1 composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Answer
Solution:
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)
Answer
Solution:
For Macbook:
run command sudo nano ~/.bash_profile
to edit bash_profile then add alias composer="COMPOSER_MEMORY_LIMIT=-1 composer"
in that file, then save and exit.
Hope this will solve the problem; Happy coding!
Answer
Solution:
I condensed or packaged up the useful and accepted answer here into reusable (zsh) aliases/functions, for quicker and easier-to-remember reuse:
# composer high-memory
composermem() {
php -r "echo ini_get('memory_limit').PHP_EOL;"
}
alias composerbig='COMPOSER_MEMORY_LIMIT=-1 composer $1'
(php composer.phar
is already aliased to composer
on the system).
Answer
Solution:
I solved this problem using this command COMPOSER_MEMORY_LIMIT=-1
Example: COMPOSER_MEMORY_LIMIT=-1 composer requires larval/ui
Answer
Solution:
the options on this page worked for me
https://www.jesusamieiro.com/php-fatal-error-allowed-memory-size-of-1610612736-bytes-exhausted/
To be more precise solution one:
COMPOSER_MEMORY_LIMIT=-1 composer update
Answer
Solution:
In my case, my composer version was 1.x which was back-dated. After upgrading the version to 2.x it worked as intended.
Answer
Solution:
Make sure to not require a package before making sure the vendor folder exists.
Check if you have done composer install
before. You may be just cloned the repository to your machine. So, you have to install the old packages before requiring a new one. Or you may want to include this option --profile
to your composer command to see the timing and memory usage information.
Answer
Solution:
In my case:
Windows 10 and Docker Desktop works:
docker-compose -f .docker/docker-compose.yml exec php env COMPOSER_MEMORY_LIMIT=-1 composer require fideloper/proxy
Source