代码之家  ›  专栏  ›  技术社区  ›  quant

作曲家的内存限制是多少,如何增加它?

  •  0
  • quant  · 技术社区  · 6 年前

    我试图通过运行下面的命令将HWIOAuthBundle添加到我的项目中。

    composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
    

    HWIOAuthBundle github: https://github.com/hwi/HWIOAuthBundle

    使用版本^0.6。0@dev 对于使用版本^1的hwi/oauth捆绑包。2@dev 用于使用版本为^1的php http/GUZLE6适配器。10@dev 对于 php http/httplug bundle./composer.json已更新 具有包信息更新依赖项的composer存储库 (包括需求开发)

    PHP致命错误:允许的内存大小为1610612736字节 (试图分配67108864字节)在 phar:///usr/local/cell/composer/1.4.2/libexec/composer.phar/src/composer/dependencysolver/Solver.php,第220行

    致命错误:允许的内存大小为1610612736字节(已尝试) phar:///usr/local/cell/composer/1.4.2/libexec/composer.phar/src/composer/dependencysolver/Solver.php,第220行

    我尝试在php.ini文件中将内存限制设置为2G,但没有成功。我通过运行 php -i | grep php.ini

    0 回复  |  直到 8 年前
        1
  •  457
  •   Tailer    6 年前

    要获取当前内存限制值,请运行:

    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
    
        2
  •  341
  •   odubah    6 年前

    在我的情况下,我试图要求这个 package PHP Fatal error: Allowed memory size of .

    我发现像这样运行很容易,而且您不必更新PHP INI文件。

    例子: COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel

        3
  •  90
  •   Thomas Vangelooven    7 年前

    另一个解决方案来自 manual :

    Composer还遵守 COMPOSER_MEMORY_LIMIT 环境变量:

    COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
    

    export COMPOSER_MEMORY_LIMIT=-1
    composer <...>
    
        4
  •  57
  •   Milla Sense    5 年前

    同样的问题,任何与“内存限制”相关的东西都不起作用,但是。。

    composer self-update --2
    

    …解决了我的问题(升级:1.10.17->2.0.4)

        5
  •  51
  •   TIGER mala    6 年前

    在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" %*
    

    问题已解决;)

        6
  •  33
  •   Arno van Oordt    6 年前

    因为之前的答案都不包括 set 我花了一点时间才弄明白如何在Windows中不改变php.ini,但以下是对我有效的方法:

    set COMPOSER_MEMORY_LIMIT=-1
    composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
    
        7
  •  31
  •   Davide Casiraghi    5 年前

    我绕过了HomesteadLaravel(流浪者)虚拟机中的问题,该虚拟机运行前面的composer命令 COMPOSER_MEMORY_LIMIT=-1

    示例

    要更新编写器:

    COMPOSER_MEMORY_LIMIT=-1 composer update
    

    要安装软件包,请执行以下操作:

    COMPOSER_MEMORY_LIMIT=-1 composer require spatie/laravel-translatable
    
        8
  •  24
  •   Acapulco    7 年前

    只要设定 memory_limit 指定composer.phar文件的完整路径并使用以下命令进行更新(在我的示例中):

    php -d memory_limit=-1 C:/wamp64/composer.phar update
    
        9
  •  22
  •   juanitourquiza    5 年前

    php -d memory_limit=-1 /usr/local/bin/composer update --no-plugins

    我用这句话更新了symfony5。这个命令也适用于拉威尔7。

        10
  •  21
  •   Ruben Gonzalez    7 年前

    最近发现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
    
        11
  •  18
  •   Marcus Christiansen    6 年前

    无法打开输入文件:composer

    跑步:

    php -d memory_limit=-1 /usr/local/bin/composer require ...
    
        12
  •  18
  •   Abduhafiz    6 年前

    COMPOSER_MEMORY_LIMIT=-1 composer require <package-name> --ignore-platform-reqs
    
        13
  •  18
  •   meow2x    5 年前

    有时问题出在作曲家的内存限制上。在我的例子中,我试图增加php内存限制,但仍然得到了错误。 你可以用 COMPOSER_MEMORY_LIMIT=-1 将其用作前缀:

    COMPOSER_MEMORY_LIMIT=-1 composer require the/library
    

    以后你必须再加一次前缀。

    希望这有帮助。

        14
  •  12
  •   Mohamed Hany    6 年前

    我用的是Windows10,这个命令对我有效,

    php -d memory_limit=-1 "C:\ProgramData\ComposerSetup\bin\composer.phar" update
    
        15
  •  12
  •   Anatoly Sokolov    5 年前

    Composer 2.0预览版现已推出: https://github.com/composer/composer/releases 修正了我的问题。您可以使用设置预览 composer self-update --preview

    编辑:释放内存调整的Composer 2

        16
  •  6
  •   Roubi    6 年前

    你可以使用 特定php版本 作曲家

    如果,像我一样,出于某种原因,你正在使用 即使您的计算机是64位的,这也会限制分配给Composer的内存量。我这样解决我的问题:

    • 在composer中(在我的例子中使用cygwin),运行:

    COMPOSER_MEMORY_LIMIT=-1 C:/php64/php.exe ../composer.phar update

        17
  •  6
  •   saber tabatabaee yazdi    5 年前

    在windows by xampp中,我刚更改了:

    ;memory_limit=512M 
    

    memory_limit =-1
    

    然后通过xampp重新启动Apache

    结果如下:

    ; Maximum amount of memory a script may consume
    ; http://php.net/memory-limit
    memory_limit =-1
    ;memory_limit=512M
    
        18
  •  5
  •   Kalle Karlsson    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
    

    如果分析了其他.ini文件: 内存限制需要更改

    /usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
    

    memory_limit = -1 or memory_limit = 1G
    
        19
  •  4
  •   Steven Yip    6 年前

    我只想谈谈我在这件事上的情况。

    问题背景:

    1. 在尝试运行composer require“laravel条令/orm:~1.4.13”后收到此消息:

    检查 https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

    1. 显然,我的composer.json和composer.lock有一些问题。 运行$composer validate,结果是: “锁文件不是composer.json中最新更改的最新版本,建议您运行 composer update ."

    2. 所以我运行了$composer更新,所有依赖项都被解决了。Imho,当依赖项有一些问题时,可能树的构建是不同步的,因此内存不足的问题。

    希望这对其他人有帮助。

        20
  •  4
  •   Jose Seie    6 年前

    php.ini 配置文件。

    1. 找到你的 配置文件可以使用以下命令: 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
    

    我们要更改的文件是 已加载配置

    1. 打开并搜索 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
    
    1. 保存文件后,可以通过运行此命令来验证PHP更改,该命令将输出当前内存设置 php.ini文件 文件:

    注: 保存后,新内存将正常工作。你不需要做其他事情。

    更多信息: https://support.acquia.com/hc/en-us/articles/360036102614-Overriding-memory-limits-during-local-development-with-Composer

        21
  •  3
  •   Ted Mosby    6 年前
    Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
    

    内存限制 -1 为我工作;)(vim/etc/php/7.2/cli/php.ini)

        22
  •  3
  •   Prosanta Chaki    6 年前

    run命令 sudo nano ~/.bash_profile alias composer="COMPOSER_MEMORY_LIMIT=-1 composer" 然后保存并退出。

        23
  •  2
  •   emjayess    6 年前

    我将这里有用且公认的答案浓缩或打包成可重用(zsh)别名/函数,以便更快更容易记住重用:

    # composer high-memory
    composermem() {
      php -r "echo ini_get('memory_limit').PHP_EOL;"
    }
    alias composerbig='COMPOSER_MEMORY_LIMIT=-1 composer $1'
    

    ( php composer.phar 已化名为 composer 在系统上)。

        24
  •  2
  •   Faisal Ahmed    5 年前

    我用这个命令生成器\u MEMORY\u LIMIT=-1解决了这个问题

    示例:COMPOSER\u MEMORY\u LIMIT=-1 COMPOSER需要幼虫/ui

        25
  •  0
  •   Saud Alfadhli    6 年前

    检查是否完成 composer install 以前。您可能只是将存储库克隆到您的计算机上。因此,在需要新的软件包之前,必须先安装旧的软件包。或者您可能希望包含此选项 --profile

        26
  •  0
  •   Vadim Izmalkov    5 年前

    就我而言:

    Windows 10和Docker Desktop works:

    docker-compose -f .docker/docker-compose.yml exec php env COMPOSER_MEMORY_LIMIT=-1 composer require fideloper/proxy
    
    
        27
  •  0
  •   Vignesh PS    5 年前

    在php.ini文件中找到“内存限制”。

    只需将内存限制值更改为2G,如下所示

    ;http://php.net/memory-limit
    memory_limit=2G
    

    使用下面的命令重新定位php文件。

    php --ini
    
        28
  •  0
  •   М.Б.    5 年前

    在我的例子中,我丢失了一个交换分区。更多信息: https://github.com/composer/composer/issues/7348#issuecomment-414178276

        29
  •  -1
  •   Fidèle W. AVI    7 年前

    php.ini文件 文件,那是PHP的,你可以在 还有阿帕奇的,可以在 C:\wamp64\bin\apache\apachex.xx\bin\php.ini . 这两个文件都有内存限制参数。所以要解决这个问题,最好设置 内存限制=-1

        30
  •  -1
  •   Chetam Okafor    6 年前

    我使用的是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

    推荐文章