Asked  2 Years ago    Answers:  5   Viewed   133 times

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 ^[email protected] for hwi/oauth-bundle Using version ^[email protected] for php-http/guzzle6-adapter Using version ^[email protected] 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

 Answers

4

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
Tuesday, November 15, 2022
2

You need to increase your script memory by using this:

ini_set('memory_limit', '-1'); 

You need to use this line at the top of file.

By increasing memory_limit your script will take unlimited memory usage of server.

If you have access on php.ini file than you can increase limit from php.ini file otherwise you need to add this line.

Side note:

If you think unlimited memory will be effected on other areas than you can set custom value as:

ini_set('memory_limit', '512M');  //increase size as you need
Tuesday, August 2, 2022
 
elad
 
2

I've solved this in the past by using simply:

php -d memory_limit=1G /usr/local/bin/composer update --prefer-dist --no-dev

Where the no-dev may help reduce the memory footprint too - certainly speed.

Thursday, December 22, 2022
 
2

This issue is here:

/**
 * In some special setups, the vendor/ directory isn't located in the project's
 * root directory. To make this command work for every case, read Composer's
 * vendor/ directory location directly from composer.json file.
 *
 * @return string
 */
private function getComposerVendorDir()
{
    $composerJson = json_decode(file_get_contents(__DIR__.'/../composer.json'));
    if (isset($composerJson->config)) {
        return $composerJson->config->{'vendor-dir'};
    }

    return __DIR__.'/../vendor/composer';
}

Specifically:

return $composerJson->config->{'vendor-dir'};

The condition on isset($composerJson->config) returns true, which leads to the above statement. However when you look at the generated composer.json:

"config": {
    "bin-dir": "bin"
},

The vendor-dir is missing. Generating the notice:

PHP Notice:  Undefined property: stdClass::$vendor-dir

Therefore the function returns null, so this requirement fails:

$this->addRequirement(
    is_dir($this->getComposerVendorDir()), // <-- HERE
    'Vendor libraries must be installed',
    'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. '.
        'Then run "<strong>php composer.phar install</strong>" to install them.'
);

This is a bug on the symfony/symfony-standard. It's likely it is already in line to be fixed, but you may as well raise it on Github.

EDIT:

It looks like they already have, 2.7 uses:

$this->addRequirement(
    is_dir(__DIR__.'/../vendor/composer'),
    'Vendor libraries must be installed',
    'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. '.
    'Then run "<strong>php composer.phar install</strong>" to install them.'
);

There is nothing wrong with your project, its just a bug in the standard edition. So long as you are autoloading classes properly you are fine.

Thursday, November 10, 2022
 
esabe
 
5

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.

Thursday, November 24, 2022
 
Only authorized users can answer the search term. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :
 

Browse Other Code Languages