code-8
code-8

Reputation: 58652

PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes)

I ran composer install on my 16 GB Mac Book Pro, and I got this

 ⚡️  distributor-portal  composer install                                                                                                       
Loading composer repositories with package information
Updating dependencies (including require-dev)                      
PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 220

Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 220

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.⚡️  distributor-portal 

which php

/usr/local/php5/bin/php

php --version

PHP 7.1.4 (cli) (built: May  6 2017 10:02:00) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.4, Copyright (c) 1999-2017, by Zend Technologies

cd /usr/local/; ls -lrt

total 0
lrwxr-xr-x    1 root   wheel    26B Jan 23  2017 openssl@ -> mac-dev-env/openssl-1.1.0c
lrwxr-xr-x    1 root   wheel    37B Jul  5  2017 php5@ -> /usr/local/php5-7.1.4-20170506-100436
lrwxr-xr-x    1 root   wheel    30B Oct  9  2017 mysql@ -> mysql-5.7.19-macos10.12-x86_64
-rw-r--r--    1 root   wheel     0B Dec 12 14:47 .com.apple.installer.keep
drwxr-xr-x@  10 root   wheel   320B Dec 12 15:51 ../
drwxr-xr-x    3 root   wheel    96B Dec 12 15:52 mac-dev-env/
drwxr-xr-x    3 root   wheel    96B Dec 12 15:53 remotedesktop/
drwxr-xr-x   21 root   wheel   672B Dec 12 15:53 ./
drwxr-xr-x   15 bheng  admin   480B Dec 12 15:53 etc/
drwxr-xr-x   14 501    wheel   448B Dec 12 15:54 packager/
drwxr-xr-x   25 bheng  admin   800B Dec 12 15:54 share/
drwxr-xr-x   14 root   wheel   448B Dec 12 15:54 php5-7.1.4-20170506-100436/
drwxr-xr-x   71 bheng  admin   2.2K Dec 12 15:54 Cellar/
drwxr-xr-x   11 bheng  admin   352B Dec 12 15:54 var/
drwxr-xr-x  396 bheng  admin    12K Dec 12 15:54 bin/
drwxr-xr-x   13 bheng  admin   416B Dec 12 15:54 php5-5.6.14-20151002-085853/
drwxr-xr-x   80 bheng  admin   2.5K Dec 12 15:54 opt/
drwxr-xr-x   13 root   wheel   416B Dec 12 15:54 mysql-5.7.19-macos10.12-x86_64/
drwxr-xr-x   17 bheng  admin   544B Dec 12 15:54 Homebrew/
drwxr-xr-x  122 bheng  admin   3.8K Dec 12 15:54 include/
drwxr-xr-x  231 bheng  admin   7.2K Dec 12 15:54 lib/

How would one go about debugging this further?

Upvotes: 5

Views: 12343

Answers (3)

Mohamed Salem Lamiri
Mohamed Salem Lamiri

Reputation: 6077

Running COMPOSER_MEMORY_LIMIT=-1 in front of php will work, but is not the best solution. Ideally you need to set the memory_limit settings to a higher value.

I have installed [email protected] with brew and it works fine, however somehow the php.ini being in use is the default one on mac and not the one with [email protected], even tho when I do php --ini and php -v it points to my brew version.

I fixed the memory issue by increasing the memory_limit in /etc/php.ini .. while php --ini tells me that my ini file is in /usr/local/etc/php/7.4/php.ini

Upvotes: 0

Jasim Juwel
Jasim Juwel

Reputation: 766

Set COMPOSER_MEMORY_LIMIT=-1 in your terminal when run composer install command.

Run COMPOSER_MEMORY_LIMIT=-1 composer install instead of composer install

Upvotes: 0

common sense
common sense

Reputation: 3912

Your machine might have 16GB installed but PHP is not configured to use it. Locate your php.ini file (on OSX with PHP installed by Homebrew its at /usr/local/etc/php/$PHP_VERSION/php.ini. Open it with an editor and search for memory_limit. There you specify how much memory a PHP process can use. If you like to give it all change the value to -1.

$PHP_VERSION is the version of your PHP installation. To figure out which is installed use php --version.

Upvotes: 14

Related Questions