Bri*_*hen 32 php symfony composer-php
我正在尝试通过运行以下命令将HWIOAuthBundle添加到我的项目中.
composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Run Code Online (Sandbox Code Playgroud)
HWIOAuthBundle github:https://github.com/hwi/HWIOAuthBundle
当我尝试运行composer时,我得到了内存不足的错误.
使用版本^ 0.6.0@dev用于hwi/oauth-bundle使用版本^ 1.2@dev用于php-http/guzzle6-adapter使用版本^ 1.10@dev用于php-http/httplug-bundle ./composer.json已更新使用包信息加载composer存储库更新依赖项(包括require-dev)
PHP致命错误:在phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver中,允许的内存大小为1610612736字节(尝试分配67108864字节). php在220行
致命错误:在phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php中,允许的内存大小为1610612736字节(尝试分配67108864字节)在220行
我尝试在我的php.ini文件中将memory_limit设置为2G但是没有用.我通过运行找到了我的php.iniphp -i | grep php.ini
小智 67
同样的问题,与“memory_limit”相关的任何内容都不起作用,但是..
composer self-update --2
Run Code Online (Sandbox Code Playgroud)
..解决了我的问题。(升级:1.10.17 -> 2.0.4)
Ada*_*dam 60
要获取当前的memory_limit值,请运行:
php -r "echo ini_get('memory_limit').PHP_EOL;"
Run Code Online (Sandbox Code Playgroud)
尝试增加php.ini
文件中的限制(例如,/etc/php5/cli/php.ini
对于类似Debian的系统):
; Use -1 for unlimited or define an explicit value like 2G
memory_limit = -1
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用命令行参数来增加限制:
php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Run Code Online (Sandbox Code Playgroud)
要加载php.ini文件位置,请尝试:
php --ini
Run Code Online (Sandbox Code Playgroud)
Dig*_*man 57
在 Windows 10 上;
去 C:\ProgramData\ComposerSetup\bin
编辑:composer.bat
并添加memory_limit=-1
到最后一行,如下所示。
@echo OFF
:: in case DelayedExpansion is on and a path contains !
setlocal DISABLEDELAYEDEXPANSION
php -d memory_limit=-1 "%~dp0composer.phar" %*
Run Code Online (Sandbox Code Playgroud)
问题解决了 ;)
Arn*_*rdt 41
由于以前的答案都没有包括在内,set
因此我花了一些时间才弄清楚如何在不更改 php.ini 的情况下在 Windows 中执行此操作,但以下是对我有用的方法:
set COMPOSER_MEMORY_LIMIT=-1
composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Run Code Online (Sandbox Code Playgroud)
Dav*_*ghi 35
我已经绕过了运行 Composer 命令的 Homestead Laravel (vagrant) 虚拟机中的问题,前面有COMPOSER_MEMORY_LIMIT=-1
:
例子
更新作曲家:
COMPOSER_MEMORY_LIMIT=-1 composer update
Run Code Online (Sandbox Code Playgroud)
要安装软件包:
COMPOSER_MEMORY_LIMIT=-1 composer require spatie/laravel-translatable
Run Code Online (Sandbox Code Playgroud)
jua*_*iza 27
对于 macOS Catalina 和 macOS Big Sur 中的此错误,请使用以下行:
php -d memory_limit=-1 /usr/local/bin/composer update --no-plugins
我用这一行在 Symfony 5 上更新。这个命令也适用于 laravel 7。
meo*_*w2x 25
有时问题出在作曲家的内存限制上。就我而言,我尝试增加 php 内存限制,但仍然出现错误。你可以COMPOSER_MEMORY_LIMIT=-1
用来解决这个问题。将其用作前缀:
COMPOSER_MEMORY_LIMIT=-1 composer require the/library
Run Code Online (Sandbox Code Playgroud)
将来您必须再次添加前缀。
希望这可以帮助。
Mar*_*sen 20
以防万一您遇到 Composer 错误:
无法打开输入文件:作曲家
跑:
php -d memory_limit=-1 /usr/local/bin/composer require ...
Run Code Online (Sandbox Code Playgroud)
Abd*_*fiz 19
要跳过内存限制和版本错误,请使用以下代码:
COMPOSER_MEMORY_LIMIT=-1 composer require <package-name> --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)
小智 13
窗户呢?
我使用 Windows 10,这个命令对我有用,
php -d memory_limit=-1 "C:\ProgramData\ComposerSetup\bin\composer.phar" update
Run Code Online (Sandbox Code Playgroud)
Ana*_*lov 13
Composer 2.0 预览版现已推出:https : //github.com/composer/composer/releases
为我解决了问题。您可以设置预览composer self-update --preview
编辑:发布内存调整的 Composer 2
小智 12
只需设置memory_limit
指定composer.phar文件的完整路径并进行更新,就我而言,使用以下命令:
php -d memory_limit=-1 C:/wamp64/composer.phar update
Run Code Online (Sandbox Code Playgroud)
手册中的另一种解决方案:
Composer还遵守COMPOSER_MEMORY_LIMIT
环境变量定义的内存限制:
COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
Run Code Online (Sandbox Code Playgroud)
或者就我而言
export COMPOSER_MEMORY_LIMIT=-1
composer <...>
Run Code Online (Sandbox Code Playgroud)
小智 8
最近发现,Composer在具有很多历史标记的程序包上消耗大量CPU +内存。参见composer / composer#7577
解决此问题的方法是使用symfony/flex
或https://github.com/rubenrua/symfony-clean-tags-composer-plugin
composer global require rubenrua/symfony-clean-tags-composer-plugin
Run Code Online (Sandbox Code Playgroud)
您可以在运行Composer时使用特定的 php 版本
如果像我一样,出于某种原因,即使您的计算机是 64 位,您也使用PHP 32位,这将始终限制分配给 Composer 的内存量。我这样解决了我的问题:
COMPOSER_MEMORY_LIMIT=-1 C:/php64/php.exe ../composer.phar update
在 xampp 的 windows 中,我刚刚更改了:
;memory_limit=512M
Run Code Online (Sandbox Code Playgroud)
在 php.ini 中:
memory_limit =-1
Run Code Online (Sandbox Code Playgroud)
然后通过 xampp 重新启动 Apache
这是结果:
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit =-1
;memory_limit=512M
Run Code Online (Sandbox Code Playgroud)
小智 6
在 Mac 上 php 7.4
跑
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
Run Code Online (Sandbox Code Playgroud)
如果解析了额外的 .ini 文件:memory_limit 需要在
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
Run Code Online (Sandbox Code Playgroud)
正如 Jose Seie 所写,将内存设置为
memory_limit = -1 or memory_limit = 1G
Run Code Online (Sandbox Code Playgroud)
小智 5
只是想分享一下我在这件事上的情况。
问题上下文:
致命错误:在第 52 行的 phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php 中,允许的内存大小为 1610612736 字节(试图分配 4096 字节) 检查https://getcomposer。 org/doc/articles/troubleshooting.md#memory-limit-errors有关如何处理内存不足错误的更多信息。
解决方案:
显然我的 composer.json 和 composer.lock 有一些问题。跑$ composer validate,结果是:“锁文件不是最新的composer.json的最新变化,建议运行composer update
。”
所以我运行了 $ composer update,所有的依赖都解决了。恕我直言,当依赖项出现问题时,可能树构建不同步,因此出现内存不足问题。
希望这可以帮助那里的任何人。
要覆盖此设置并修复本地计算机上的问题,您可以在php.ini
配置文件中进行以下更改。
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
Run Code Online (Sandbox Code Playgroud)
我们要更改的文件是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
Run Code Online (Sandbox Code Playgroud)
保存文件后,您可以通过运行以下命令来验证 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
归档时间: |
|
查看次数: |
39784 次 |
最近记录: |