Composer 要求内存不足。 PHP 致命错误:允许的内存大小为 1610612736 字节已用完 Voyager

Posted

技术标签:

【中文标题】Composer 要求内存不足。 PHP 致命错误:允许的内存大小为 1610612736 字节已用完 Voyager【英文标题】:Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted Voyager 【发布时间】:2020-12-17 20:47:52 【问题描述】:

您好,我在安装 voyager 时正在尝试解决一些问题。 当我尝试运行 composer require 时,出现内存不足错误。我不明白发生了什么。它在我的控制台上的结果:

@DESKTOP->>>>> /c/xampp/htdocs/ (master) $ 作曲家需要 tcg/voyager 为 tcg/voyager 使用版本 ^1.4 ./composer.json 已更新 使用包信息加载作曲家存储库 更新依赖项(包括 require-dev) php致命错误:第83行的phar://composer/composer.phar/src/Composer/DependencyResolver/RuleSet.php中允许的内存大小为1610612736字节(试图分配134217736字节)```

也许 composer.JSON 有问题,我需要检查一下。你应该注意什么是什么问题 我的 composer.json 文件```


"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": [
    "framework",
    "laravel"
],
"license": "MIT",
"require": 
    "php": "^7.2",
    "convertapi/convertapi-php": "^1.1",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "^6.2",
    "laravel/socialite": "^4.3",
    "laravel/tinker": "^1.0",
    "openpayu/openpayu": "^2.2",
    "paypal/rest-api-sdk-php": "^1.14",
    "pragmarx/tracker": "^3.5",
    "spatie/laravel-backup": "^6.8",
    "spatie/pdf-to-image": "^2.0",
    "tcg/voyager": "^1.3"
,
"require-dev": 
    "facade/ignition": "^1.4",
    "fzaninotto/faker": "^1.4",
    "mockery/mockery": "^1.0",
    "nunomaduro/collision": "^3.0",
    "phpunit/phpunit": "^8.0",
    "tanmuhittin/laravel-google-translate": "^1.0"
,
"config": 
    "optimize-autoloader": true,
    "preferred-install": "dist",
    "sort-packages": true
,
"extra": 
    "laravel": 
        "dont-discover": []
    
,
"autoload": 
    "psr-4": 
        "App\\": "app/"
    ,
    "files": [
        "app/Helpers/HelperFunctions.php"
    ],
    "classmap": [
        "database/seeds",
        "database/factories"
    ]
,
"autoload-dev": 
    "psr-4": 
        "Tests\\": "tests/"
    
,
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": 
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover --ansi"
    ],
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate --ansi"
    ]
,
"repositories": 
    "hooks": 
        "type": "composer",
        "url": "https://larapack.io"
    

【问题讨论】:

【参考方案1】:

看起来您正在使用 xampp。 您可以尝试更改php.ini 中的memory_limit

找到这个:

;memory_limit=512M 

改为:

memory_limit =-1

然后从 xampp 重启 Apache

【讨论】:

为什么我在上传项目到服务器时也会出现这个问题? @Inna 因为我向您展示的是用于本地开发,当您上传到服务器时,它是一个不同的环境,这是一个不同的问题。您需要更改服务器上的 memory_limit。 @Inna 我的回答是正确的,为什么不接受我的回答。?【参考方案2】:

您还可以使用以下命令将 voyager 安装到您的服务器中: COMPOSER_MEMORY_LIMIT=-1 composer require tcg/voyager

而不仅仅是composer require tcg/voyager

我在thread 上找到了这个。希望能帮助到你。不过,Andy Song 的解决方案更好。

【讨论】:

【参考方案3】:

如果您的作曲家位于 /usr/local/bin/ 中,请使用:

php -d memory_limit=-1 /usr/local/bin/composer require tcg/voyager

--

参考作曲家文档https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

要获取当前的 memory_limit 值,运行:

php -r "echo ini_get('memory_limit').PHP_EOL;"

尝试增加 php.ini 文件中的限制(例如 /etc/php5/cli/php.ini 用于类似 Debian 的系统):

;使用 -1 表示无限制或定义明确的值,例如 2G

memory_limit = -1

Composer 还遵守由 COMPOSER_MEMORY_LIMIT 环境变量定义的内存限制:

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

或者,您可以使用命令行参数增加限制:

php -d memory_limit=-1 composer.phar <...>

【讨论】:

以上是关于Composer 要求内存不足。 PHP 致命错误:允许的内存大小为 1610612736 字节已用完 Voyager的主要内容,如果未能解决你的问题,请参考以下文章

Php致命错误:使用composer安装用户捆绑时内存大小耗尽

构建树时PHP致命错误内存不足

PHP致命错误:内存不足(分配80740352)(试图分配12352字节)

WordPress PHP致命错误:内存不足(分配2097152)(试图分配4096字节)

Composer 内存不足 - 需要其他方法来增加 PHP memory_limit

Composer 致命错误:声明 Fxp... 必须与第 334 行的 ...AbstractAssetsRepository.php 兼容