【问题标题】:Composer require runs out of memory. PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted VoyagerComposer 要求内存不足。 PHP 致命错误:允许的内存大小为 1610612736 字节已用完 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"
    }
}

}

【问题讨论】:

    标签: php laravel composer-php voyager


    【解决方案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 <...>
      

      【讨论】:

        猜你喜欢
        • 2021-11-08
        • 2021-03-15
        • 2019-05-21
        • 2021-03-08
        • 2021-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多