[php] Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted

I am trying to add HWIOAuthBundle to my project by running the below command.

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

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

When I try to run composer require I am getting the out of memory error.

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

I tried setting the memory_limit to 2G in my php.ini file but did not work. I found my php.ini by running php -i | grep php.ini

This question is related to php symfony composer-php

The answer is


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

In my case I was trying to require this package, and I was getting the PHP Fatal error: Allowed memory size of.

I found it easy to run like this and you don't have to update the PHP INI file.

example: COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel

Hope this help someone.


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 <...>

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 ;)


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)


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

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

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

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

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.


For skipping memory limit and version error use the code below:

COMPOSER_MEMORY_LIMIT=-1 composer require <package-name> --ignore-platform-reqs

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 ...

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.


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

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


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

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


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

To override this and fix the issue on your local machine you can do the following changes within your php.ini configuration file.

  1. 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.

  1. Open and search for the memory_limit you can set the memory_limit = -1 to give an unlimited amount of memory to PHP processes or you can set 512MB, 1G, 2G, 5G,....

    $ nano /usr/local/etc/php/7.3/php.ini

locate and set:

$ memory_limit = -1 or memory_limit = 1G
  1. 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.

More info: https://support.acquia.com/hc/en-us/articles/360036102614-Overriding-memory-limits-during-local-development-with-Composer


Just want to share my situation on this matter.

Problem context:

  1. Running composer in a vagrant box.
  2. 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.

  1. Have tried setting php.ini memory limit to -1. (still not working).

Solution:

  1. 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."

  2. 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.


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!


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)


I solved this problem using this command COMPOSER_MEMORY_LIMIT=-1

Example: COMPOSER_MEMORY_LIMIT=-1 composer requires larval/ui


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).


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


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.


Running composer dump-autoload solves it for me.


I am using php7.2 and the size is set to memory_limit = 512M by default. to increase the size, you need to locate php.ini.

In Wamp, it is located in C:\wamp64\bin\php\php7.2.23\php.ini. Please watch out for the PHP version as it is the name folder, in my case I have php7.2.23

In Laragon, it is located in C:\laragon\bin\php\php-7.2.23-Win32-VC15-x64\php.ini as was in my case.

If you don't want to allow unlimited space, you can set whatever size that is convenient to you, in my case I did memory_limit = 2G

if you want to allow unlimited space, you can change to memory_limit = -1


Here is another way to solve this problem under windows, if you use Wampserver. Indeed at the level of wampserver, there are two php.ini files, that of PHP, which one can find in the location C: \ wamp64 \ bin \ php \ phpx.xx \ php.ini and that of Apache , which can be found at location C: \ wamp64 \ bin \ apache \ apachex.xx \ bin \ php.ini. Both of these files have the memory_limit parameter. So to be sure to solve this problem, it is better to set the memory_limit = -1 parameter in both files at once.


go and find php.ini inside you PHP directory incase of xampp it will be inside xampp/PHP and inside php.ini file update memory_limit:512M to 2048M


Questions with php tag:

I am receiving warning in Facebook Application using PHP SDK Pass PDO prepared statement to variables Parse error: syntax error, unexpected [ Preg_match backtrack error Removing "http://" from a string How do I hide the PHP explode delimiter from submitted form results? Problems with installation of Google App Engine SDK for php in OS X Laravel 4 with Sentry 2 add user to a group on Registration php & mysql query not echoing in html with tags? How do I show a message in the foreach loop? Target class controller does not exist - Laravel 8 Message: Trying to access array offset on value of type null Array and string offset access syntax with curly braces is deprecated Visual Studio Code PHP Intelephense Keep Showing Not Necessary Error How to fix "set SameSite cookie to none" warning? The POST method is not supported for this route. Supported methods: GET, HEAD. Laravel Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib error running php after installing node with brew on Mac What does double question mark (??) operator mean in PHP Post request in Laravel - Error - 419 Sorry, your session/ 419 your page has expired PHP with MySQL 8.0+ error: The server requested authentication method unknown to the client php mysqli_connect: authentication method unknown to the client [caching_sha2_password] Converting a POSTMAN request to Curl Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required Issue in installing php7.2-mcrypt Xampp localhost/dashboard How can I run specific migration in laravel How to change PHP version used by composer Laravel 5 show ErrorException file_put_contents failed to open stream: No such file or directory Artisan migrate could not find driver phpMyAdmin ERROR: mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO) Ajax LARAVEL 419 POST error Laravel 5.5 ajax call 419 (unknown status) laravel 5.5 The page has expired due to inactivity. Please refresh and try again "The page has expired due to inactivity" - Laravel 5.5 How to increment a letter N times per iteration and store in an array? Can't install laravel installer via composer Only on Firefox "Loading failed for the <script> with source" Is there way to use two PHP versions in XAMPP? How to prevent page from reloading after form submit - JQuery laravel Eloquent ORM delete() method No Application Encryption Key Has Been Specified General error: 1364 Field 'user_id' doesn't have a default value How to logout and redirect to login page using Laravel 5.4? How to uninstall an older PHP version from centOS7 How to Install Font Awesome in Laravel Mix PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers Laravel - htmlspecialchars() expects parameter 1 to be string, object given How to downgrade php from 7.1.1 to 5.6 in xampp 7.1.1?

Questions with symfony tag:

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) symfony2 The CSRF token is invalid. Please try to resubmit the form What is the difference between .yaml and .yml extension? How can I use break or continue within for loop in Twig template? Running Composer returns: "Could not open input file: composer.phar" Symfony2 and date_default_timezone_get() - It is not safe to rely on the system's timezone settings Symfony - generate url with parameter in controller Call PHP function from Twig template Check if inputs form are empty jQuery How to sort findAll Doctrine's method? How to use absolute path in twig functions How to know which version of Symfony I have? How to update a single library with Composer? SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES) Symfony2 symfony2 twig path with parameter url creation Doctrine query builder using inner join with conditions How to use a findBy method with comparative criteria The EntityManager is closed How do I read from parameters.yml in a controller in symfony2? symfony2 : failed to write cache directory symfony 2 twig limit the length of the text and put three dots How to include CSS file in Symfony 2 and Twig? How do I delete an entity from symfony2 How can I send JSON response in symfony2 controller Getting all request parameters in Symfony 2 Symfony 2 EntityManager injection in service Add more than one parameter in Twig path How to check if an user is logged in Symfony2 inside a controller? How to get the request parameters in Symfony 2? Path of assets in CSS files in Symfony 2 get current url in twig template? PDOException “could not find driver” in php How to get the server path to the web directory in Symfony2 from inside the controller? How to get the root dir of the Symfony2 application? Count Rows in Doctrine QueryBuilder How to get form values in Symfony2 controller Accessing session from TWIG template How to display string that contains HTML in twig template? How to render a DateTime object in a Twig template symfony 2 No route found for "GET /" Symfony2 Setting a default choice field selection How to set default value for form field in Symfony2? How do I get the entity that represents the current user in Symfony2? Accessing the logged-in user in a template How to select distinct query using symfony2 doctrine query builder? How to get current route in Symfony 2? Symfony2 : How to get form validation errors after binding the request to the form Access POST values in Symfony2 request object

Questions with composer-php tag:

Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted How to change PHP version used by composer PHP7 : install ext-dom issue PHP error: "The zip extension and unzip command are both missing, skipping." Composer: file_put_contents(./composer.json): failed to open stream: Permission denied require(vendor/autoload.php): failed to open stream How to install a specific version of package using Composer? Composer update memory limit Cannot create cache directory .. or directory is not writable. Proceeding without cache in Laravel To enable extensions, verify that they are enabled in those .ini files - Vagrant/Ubuntu/Magento 2.0.2 The openssl extension is required for SSL/TLS protection Composer: Command Not Found Composer - the requested PHP extension mbstring is missing from your system Composer could not find a composer.json Remove composer How to generate .env file for laravel? How can I resolve "Your requirements could not be resolved to an installable set of packages" error? Laravel 5 Class 'form' not found How to remove unused dependencies from composer? CakePHP 3.0 installation: intl extension missing from system Laravel 5 - artisan seed [ReflectionException] Class SongsTableSeeder does not exist OSX -bash: composer: command not found Composer Update Laravel Installing specific laravel version with composer create-project How to remove a package from Laravel using composer? Composer: The requested PHP extension ext-intl * is missing from your system How to deploy correctly when using Composer's develop / production switch? Running Composer returns: "Could not open input file: composer.phar" How do I install Composer on a shared hosting? Could not open input file: composer.phar Composer killed while updating How to force composer to reinstall a library? Composer install error - requires ext_curl when it's actually enabled What is the difference between require and require-dev sections in composer.json? composer laravel create project PHP Composer update "cannot allocate memory" error (using Laravel 4) How to enable PHP's openssl extension to install Composer? PHP Composer behind http proxy How to update a single library with Composer? Composer: how can I install another dependency without updating old ones? How to get list of all installed packages along with version in composer? You must enable the openssl extension to download files via https Composer Warning: openssl extension is missing. How to enable in WAMP Use PHP composer to clone git repo Should composer.lock be committed to version control? Using Composer's Autoload Is there any way to install Composer globally on Windows? How to run composer from anywhere?