增加内存限制 Composer 不起作用
Posted
技术标签:
【中文标题】增加内存限制 Composer 不起作用【英文标题】:Increase memory-limit Composer doesn't work 【发布时间】:2020-01-05 18:20:30 【问题描述】:我正在尝试在我的 Symfony 项目中使用该捆绑包:FOSUserBundle。但它不起作用,显然我必须增加memory_limit。但我不能让它工作。
我已经尝试查找 php.ini 文件来更改 memory_limit。但是我的 Symfony 项目中没有 php.ini 文件。为什么不存在?我是不是忘记安装东西了?如果我想手动添加它,我可以把它放在哪里? MAMP 文件夹中有 PHP.INI 文件。我尝试更改 memory_limit 值,没有帮助。
导航到正确的项目文件夹后,我尝试在终端中运行它:php -d memory_limit=2G composer update。 我得到的反应或多或少是这样的:
Nothing to install or update
Generating autoload files
Incenteev\ParameterHandler\ScriptHandler::buildParameters
Updating the "app/config/parameters.yml" file
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache
这是我在尝试要求捆绑包后遇到的错误: 致命错误:允许的内存大小为 1610612736 字节已用尽(尝试分配 4096 字节)...
如您所见,我是 Symfony 和 Composer 的新手。你能帮帮我吗?
提前致谢!
【问题讨论】:
请发布composer --version
的输出
谢谢!这是输出: Composer version 1.9.0 2019-08-02 20:55:32
你试过php -d memory_limit=-1 composer update
吗? getcomposer.org/doc/articles/…
php -d memory_limit=-1 $(which composer) update
【参考方案1】:
我通过在'config'部分下的composer.json文件中设置composer_memory_limit来解决它:
“COMPOSER_MEMORY_LIMIT”:“2G”
【讨论】:
【参考方案2】:有几件事会很有帮助。
-
确保您运行的是最新版本的 Composer。
确保您至少运行最新版本的 PHP - 版本 7 显着改善了内存使用 - 有时将使用的内存量减半。 7.2 版或(更好的)7.3 版应该是现在使用的版本(2019 年夏季)。
主动限制 Composer 必须检查的不同版本包的数量,以查看哪些可以有效使用。
Roave/SecurityAdvisories 是一个好的开始。这也将阻止您安装存在已知安全问题的软件包版本。它还将限制有效包的搜索空间,允许 Composer 忽略大量可能的包,这意味着它不需要为各种潜在组合保存大量数据。
您可以添加其他版本的软件包以进一步缩小搜索空间。例如,您可能有许多通配符“*”版本(也称为“死星版本约束”)——这几乎总是一个坏主意。大多数情况下,“^3.4”或“^4.3”形式的版本号会更好 - 允许从错误修复版本和功能(第 3 和第 2 个数字)升级,但不能从通常包含重大更改的主要版本升级。
【讨论】:
谢谢!我检查了一切,没有成功:(以上是关于增加内存限制 Composer 不起作用的主要内容,如果未能解决你的问题,请参考以下文章