为什么在通过部署机器人安装 composer 后我必须在服务器上 运行 php artisan passport:install?

Why i have to run php artisan passport:install on server after composer install via deploy bot?

我正在使用部署机器人在服务器上部署我的 laravel 项目。 拉取请求

后服务器上的以下命令运行

chmod -R 777 $RELEASE/storage

composer install --no-progress --optimize-autoloader

php artisan config:cache php artisan migrate

php artisan passport:install

php artisan passport:client --personal

然后我的项目工作顺利,但问题是因为我必须 运行 php artisan passport:install always 然后它再次生成密钥然后当前用户必须注销才能继续。 如果我从这些命令中删除 php artisan passport:install 然后它会在 found

上生成一个错误键

Composer.json:

    {
        "name": "laravel/laravel",
        "type": "project",
        "description": "The Laravel Framework.",
        "keywords": [
            "framework",
            "laravel"
        ],
        "license": "MIT",
        "require": {
            "php": "^7.1.3",
            "barryvdh/laravel-cors": "^0.11.3",
            "bosnadev/repositories": " 0.*",
            "fideloper/proxy": "^4.0",
            "laravel/framework": "5.8.*",
            "laravel/passport": "^7.2",
            "laravel/tinker": "^1.0",
            "laravelcollective/html": "^5.7",
            "orangehill/iseed": "^2.6",
            "spatie/laravel-menu": "^3.3",
            "spatie/laravel-permission": "^2.32"
        },
        "require-dev": {
            "beyondcode/laravel-dump-server": "^1.0",
            "filp/whoops": "^2.0",
            "fzaninotto/faker": "^1.4",
            "mockery/mockery": "^1.0",
            "nunomaduro/collision": "^2.0",
            "phpunit/phpunit": "^7.0",
            "user11001/eloquent-model-generator": "^2.0",
            "xethron/migrations-generator": "^2.0"
        },
        "config": {
            "optimize-autoloader": true,
            "preferred-install": "dist",
            "sort-packages": true
        },
        "extra": {
            "laravel": {
                "dont-discover": []
            }
        },
        "autoload": {
            "psr-4": {
                "App\": "app/"
            },
            "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"
            ]
        }
    }

如果 php artisan install:passport 不存在,则日志文件出错:

local.ERROR: Key path "/public_html/releases/1556096621/storage/oauth-private.key" does not exist or  is not readable {"userId":1,"exception":"[object]
(LogicException(code: 0): Key path \"file:///folderName/public_html/releases/1556096621/storage/oauth-private.key\" does not exist or is not readable at
/home/folderName/public_html/shared/vendor/league/oauth2-server/src/CryptKey.php:48)

passport:install command. This command will create the encryption keys needed to generate secure access tokens. In addition, the command will create "personal access" and "password grant" clients which will be used to generate access tokens:

Passport 从您在 .env 中的 APP_KEY 生成这些密钥。在 composer install 之后,这个密钥被改变了,所以由 passport 生成的现有密钥将不起作用:local.ERROR: Key path "/public_html/releases/1556096621/storage/oauth-private.key" does not exist or is not readable。因为它是用旧的APP_KEY

生成的