oauth-private.key不存在或不可读

O'N*_*iel 6 php oauth-2.0 laravel laravel-5 laravel-passport

所以,我从Bitbucket导入了另一个项目并尝试使用它启动它php artisan serve,我总是得到这个错误:

[LogicException]                                                                   
  Key path "file:///var/www/html/DesignViewer5/storage/oauth-private.key" does not   
  exist or is not readable                                                           
Run Code Online (Sandbox Code Playgroud)

我自己创建项目时没有收到此错误,我无法运行任何其他命令.我试过'php artisan key:generate',并得到完全相同的错误.

我试过:composer update,得到了这个:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
  - Updating spatie/laravel-permission (1.11.1 => 1.12.0) Downloading: 100%         
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize


  [LogicException]                                                             
  Key path "file:///var/www/html/DesignViewer5/storage/oauth-private.key" doe  
  s not exist or is not readable                                               


Script php artisan optimize handling the post-update-cmd event returned with error code 1
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决它?谢谢!

小智 21

我更新作曲家时遇到了同样的问题。我使用php artisanpassport:keys再次生成了密钥,它解决了问题


Rah*_*aee 19

因此,如果您已经安装了密码并且没有配置运行此命令,则示例

php artisan passport:keys
Run Code Online (Sandbox Code Playgroud)

如果尚未安装 Passport 包,您必须检查 Laravel 文档中的 passpord 文档


Ham*_*bot 18

我认为这是由于Laravel Passport,你应该尝试以下命令:

php artisan passport:install
Run Code Online (Sandbox Code Playgroud)

此命令将创建生成安全访问令牌所需的加密密钥.此外,该命令将创建"个人访问"和"密码授予"客户端,这些客户端将用于生成访问令牌

资料来源:https://laravel.com/docs/5.4/passport


O'N*_*iel 12

我找到了解决方案解决 方案: 在 config/app.php 中,我必须注释这些行:

/*Laravel\Passport\PassportServiceProvider::class,
App\Providers\CodeGrantProvider::class,
Spatie\Permission\PermissionServiceProvider::class,*/
Run Code Online (Sandbox Code Playgroud)

比您需要再次迁移整个数据库,而不是取消注释这一行:

Laravel\Passport\PassportServiceProvider::class,
Run Code Online (Sandbox Code Playgroud)

并运行php artisan passport:install我的应用程序密钥不起作用所以我不得不这样做:

php artisan config:clear
php artisan key:generate
php artisan config:clear
Run Code Online (Sandbox Code Playgroud)

而且比我能做的 php artisan serve

谢谢!


shi*_*dev 10

既然如此/storage/*.key.gitignore如果您拉动项目,那么运行php artisan passport:keys时可能会丢失密钥,将为您生成新密钥。


Lok*_*sen 6

  1. 运行:php artisan Passport:install。如果收到类似“加密密钥已存在。使用 --force 选项覆盖它们”的消息。然后运行
  2. 运行: php artisan config:clear
  3. 运行:php artisan key:generate。最后
  4. 运行: php artisan config:clear


Jig*_*sar 5

第1步:

仅当存储文件夹中不存在 时才运行oauth-private.key否则跳过第一步..oauth-public.key

php artisan passport:install
Run Code Online (Sandbox Code Playgroud)

第2步:

清除配置并生成密钥

 php artisan config:clear
 php artisan key:generate
 php artisan config:clear
Run Code Online (Sandbox Code Playgroud)

第 3 步:

像这样更改权限和所有者

sudo chown www-data:www-data storage/oauth-*.key
sudo chmod 600 storage/oauth-*.key
Run Code Online (Sandbox Code Playgroud)


Ric*_*war 5

如果您使用heroku作为部署,请尝试将其添加到该composer.jsonscript

"post-install-cmd": [ 
        "php artisan clear-compiled",
        "chmod -R 777 storage", 
        "php artisan passport:keys"
    ]
 
Run Code Online (Sandbox Code Playgroud)

然后运行这个命令

php artisan passport:install
php artisan config:clear
php artisan optimize
Run Code Online (Sandbox Code Playgroud)