oauth-private.key 不存在或不可读
Posted
技术标签:
【中文标题】oauth-private.key 不存在或不可读【英文标题】:oauth-private.key does not exist or is not readable 【发布时间】:2017-08-05 07:42:44 【问题描述】:所以,我从 Bitbucket 导入了另一个项目并尝试使用 php artisan serve
启动它,我总是收到此错误:
[LogicException]
Key path "file:///var/www/html/DesignViewer5/storage/oauth-private.key" does not
exist or is not readable
我自己制作项目时没有收到此错误,我无法运行任何其他命令。我尝试了“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
有人知道怎么解决吗?谢谢!
【问题讨论】:
【参考方案1】:我认为这是由于 Laravel Passport,您应该尝试以下命令:
php artisan passport:install
此命令将创建生成安全所需的加密密钥 访问令牌。此外,该命令将创建“个人访问” 和“密码授予”客户端,它们将用于生成访问权限 代币
来源:https://laravel.com/docs/5.4/passport
【讨论】:
你能在提到的路径中看到文件吗?如果可以,请查看权限/storage/oauth-private.key
没有。它不在那里。但这在其他文件中不是问题。
谢谢!我只是插入你的代码 php artisan passport:install,它对我有用【参考方案2】:
我找到了解决方案 解决方案: 在 config/app.php 我不得不评论这些行:
/*Laravel\Passport\PassportServiceProvider::class,
App\Providers\CodeGrantProvider::class,
Spatie\Permission\PermissionServiceProvider::class,*/
比你需要再次迁移整个数据库, 而不是取消注释这一行:
Laravel\Passport\PassportServiceProvider::class,
然后运行 php artisan passport:install
我的应用程序密钥不起作用,所以我必须这样做:
php artisan config:clear
php artisan key:generate
php artisan config:clear
我做不到php artisan serve
谢谢!
【讨论】:
【参考方案3】:执行此命令
sudo chown www-data:www-data storage/oauth-*.key
php artisan passport:install
php artisan config:clear
php artisan key:generate
php artisan config:clear
【讨论】:
【参考方案4】:我在更新作曲家时遇到了同样的问题。我再次使用 php artisan passport:keys 生成了密钥,它解决了问题
【讨论】:
部署服务器时最有用,不想重新安装护照 php artisan passport:install 不会重新安装passport...如果已经安装,它将跳过安装并生成密钥...【参考方案5】:在文件的特定位置有密钥之前不要执行此行
在AuthServiceProvider.php
中//Passport::loadKeysFrom('/secret-keys/oauth');
【讨论】:
【参考方案6】:第一步:
仅当
oauth-private.key
和oauth-public.key
不存在时运行 存储文件夹,否则跳过第一步..
php artisan passport:install
第二步:
清除配置并生成密钥
php artisan config:clear
php artisan key:generate
php artisan config:clear
第三步:
像这样更改权限和所有者:
sudo chown www-data:www-data storage/oauth-*.key
sudo chmod 600 storage/oauth-*.key
【讨论】:
【参考方案7】:由于/storage/*.key
在.gitignore
中,因此如果您拉取项目,可能会丢失密钥,运行php artisan passport:keys
将为您生成新密钥。
【讨论】:
【参考方案8】:我删除了这个位:Passport::loadKeysFrom(__DIR__.'/../secrets/oauth');
来自App\Providers\AuthServiceProvider
,它解决了这个问题。
https://laravel.com/docs/8.x/passport#deploying-passport
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
$this->registerPolicies();
Passport::routes();
Passport::loadKeysFrom(__DIR__.'/../secrets/oauth');
【讨论】:
【参考方案9】:-
运行:php artisan passport:install。
如果收到类似“加密密钥已存在。使用 --force 选项覆盖它们”之类的消息。
然后运行
运行:php artisan config:clear
运行:php artisan key:generate。
最后
运行:php artisan config:clear
【讨论】:
【参考方案10】:如果你已经安装了 passpord 并且不配置运行这个命令,那么示例
php artisan passport:keys
如果还没有安装护照包,你必须检查 Laravel 文档中的 passpord 文档
【讨论】:
以上是关于oauth-private.key 不存在或不可读的主要内容,如果未能解决你的问题,请参考以下文章