Php 有没有办法更新composer上的扩展并绕过Magento2上的内存限制错误

Php 有没有办法更新composer上的扩展并绕过Magento2上的内存限制错误,php,composer-php,magento2,Php,Composer Php,Magento2,我知道有很多关于内存限制的帖子,我已经尝试过修复,但都不起作用。想发布一个问题可能有一些陷阱 问题:我在php中定义了2GB内存限制,这是我在当前主机上可用的最大内存限制。我正在使用magento2并使用composer更新扩展。在过去,它工作完美,但现在它显示内存错误信息。请参阅下面的代码。还有什么方法可以让命令运行并对扩展进行udpate吗?此外,我还尝试使用composer\u memory\u limit=-1暂时禁用内存限制,但它不起作用。请给我打电话 [techonda@depro1

我知道有很多关于内存限制的帖子,我已经尝试过修复,但都不起作用。想发布一个问题可能有一些陷阱

问题:我在php中定义了2GB内存限制,这是我在当前主机上可用的最大内存限制。我正在使用magento2并使用composer更新扩展。在过去,它工作完美,但现在它显示内存错误信息。请参阅下面的代码。还有什么方法可以让命令运行并对扩展进行udpate吗?此外,我还尝试使用
composer\u memory\u limit=-1
暂时禁用内存限制,但它不起作用。请给我打电话

[techonda@depro13 ]$ php -i | grep memory
memory_limit => 2G => 2G
Collecting memory statistics => No
opcache.memory_consumption => 128 => 128
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => 0 => 0

[techonda@depro13 ]$ composer_memory_limit=-1 composer require  amasty/shopby 2.16.1 --update-with-dependencies
    Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2 is now available and you should upgrade. S
    ee https://getcomposer.org/2
    ./composer.json has been updated
    Loading composer repositories with package information
    Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2 is now available and you should upgrade. S
    ee https://getcomposer.org/2
    Updating dependencies (including require-dev)
    
    Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 528384 bytes) in phar:///usr/local/bin/composer/src/Compose
    r/DependencyResolver/Decisions.php on line 38
    
    Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.[techon
    da@depro13 ]$

已使用以下命令解决此问题:

php -dmemory_limit=4G /usr/local/bin/composer require amasty/shopby 2.16.1 --update-with-dependencies

像往常一样:决不,决不,决不在任何生产系统上运行
composer require
。在内存可能更大的开发系统上运行它,将
composer.lock
置于版本控制之下,并正确部署应用程序。因此,使用当前版本的PHP(至少v7)和composer可能会有所帮助,因为它们提供了更高的性能Hi Nico,是的,我确实在开发系统上使用了composer require…我希望您在本地计算机上运行了它?不。在托管服务器上。为什么?有什么需要担心的吗?正如在最初的评论中所写的:在本地开发机器上运行它,这样您就可以在部署依赖项之前测试它们是否工作