我试图通过运行下面的命令将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
要获取当前的memory_limit值,运行:
php -r "echo ini_get('memory_limit').PHP_EOL;"
尝试增加php.ini文件中的限制(例如/etc/php5/cli/php.ini对于debian类系统):
; Use -1 for unlimited or define an explicit value like 2G
memory_limit = -1
或者,你可以用命令行参数增加限制:
php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
要加载php.ini文件,请尝试:
php --ini
另一个快速解决方案:
php composer.phar COMPOSER_MEMORY_LIMIT=-1 require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
或者是:
COMPOSER_MEMORY_LIMIT=-1 composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
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.
只是想分享一下我在这件事上的情况。
问题背景:
在一个流浪的盒子里运行作曲家。
在尝试运行composer require " laravell -doctrine/orm:~1.4.13"后得到此消息:
致命错误:在phar:///usr/local/bin/composer/src/ composer/ DependencyResolver/RuleWatchGraph.php第52行中,允许的内存大小为1610612736字节已耗尽(试图分配4096字节)
有关如何处理内存不足错误的更多信息,请访问https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors。
已尝试将php.ini内存限制设置为-1。(仍然没有工作)。
解决方案:
显然是我的作曲家。Json和composer。洛克有一些问题。
运行$ composer validate,结果是:
“锁文件不符合composer的最新更改。Json,建议您运行composer update。
所以我运行$ composer update,所有依赖项都被解析了。依我之见,当依赖关系出现问题时,可能是树的构建不同步,因此出现内存不足的问题。
希望这对大家有所帮助。
我使用php7.2,大小默认设置为memory_limit = 512M。
要增加大小,需要定位php.ini。
在Wamp中,它位于C:\wamp64\bin\php\php7.2.23\php.ini。请注意PHP版本,因为它是名称文件夹,在我的情况下,我有php7.2.23
在Laragon中,它位于C:\ Laragon \bin\php\php-7.2.23- win32 - vc15 -x64\php.ini中。
如果您不想允许无限的空间,您可以设置任何您方便的大小,在我的例子中,我使用memory_limit = 2G
如果希望允许无限空间,可以更改为memory_limit = -1
要覆盖这个问题并在您的本地计算机上修复这个问题,您可以在php.ini配置文件中执行以下更改。
要找到您的php.ini配置文件,您可以使用以下命令
运行此命令后,您应该看到如下所示的输出:
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
我们想要更改的文件是Loaded Configuration。
打开并搜索memory_limit,可以将memory_limit = -1设置为PHP进程提供无限的内存,也可以设置512MB、1G、2G、5G、....
$ nano /usr/local/etc/php/7.3/php.ini
定位和设置:
$ memory_limit = -1 or memory_limit = 1G
保存文件后,您可以通过运行这个命令来验证PHP的更改,该命令将在您的PHP .ini文件中输出当前内存设置:
php -r "echo ini_get('memory_limit').PHP_EOL;"
注意:
保存后,新的内存将工作。你不需要做任何其他事情。
更多信息:https://support.acquia.com/hc/en-us/articles/360036102614-Overriding-memory-limits-during-local-development-with-Composer
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
如果解析了额外的.ini文件:
Memory_limit需要在
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
正如Jose Seie所写,设置内存为
memory_limit = -1 or memory_limit = 1G