No Laravel, quando você tenta executar php artisan
, às vezes você pode encontrar o erro: Unable to read key from file file:///var/www/mysite/storage/oauth-private.key at vendor/league/oauth2 -server/src/CryptKey.php:64
é lançado.
Este erro ocorre quando o Laravel não consegue encontrar ou acessar o arquivo de chave privada (oauth-private.key) usado para a autenticação OAuth2. Para resolver esse problema, siga as etapas fornecidas nesta postagem.
Outra mensagem de erro que pode ser lançada é: oauth-private.key does not exist or is not readable
.
Corrigindo: oauth-private.key does not exist or is not readable
Para resolver esse problema, siga estas etapas:
- Verifique a existência dos arquivos de chave private e pública
Certifique-se de que os arquivos oauth-private.key
e oauth-public.key
existam no diretório storage
do seu projeto Laravel, geralmente localizado em storage/app
. Se esses arquivos não existirem, você precisará gerá-los.
- Gere os arquivos de chave
Se os arquivos de chave (private e public keys) estiverem faltando, você pode gerá-los usando o seguinte comando do Artisan:
php artisan passport:install
Este comando irá gerar os arquivos oauth-private.key
e oauth-public.key
e colocá-los no diretório de storage.
Se você já instalou o Laravel Passport e só precisa regenerar as chaves, você pode usar o seguinte comando:
php artisan passport:keys --force
Este comando forçará a geração de novos arquivos oauth-private.key
e oauth-public.key
, substituindo quaisquer chaves existentes.
- Defina as permissões corretas
Certifique-se de que os arquivos de chave tenham as permissões corretas para que seu servidor da web possa lê-los. Você pode usar o comando chmod
para definir as permissões:
chmod 600 storage/oauth-private.key
chmod 600 storage/oauth-public.key
Isso definirá as permissões de leitura e gravação apenas para o proprietário dos arquivos.
- Crie links simbólicos
Esta etapa é necessária se você estiver executando o Laravel em um ambiente de hospedagem compartilhada (shared host), pode ser necessário criar links simbólicos para os arquivos principais. Execute os seguintes comandos:
ln -s /caminho/para/seu/laravel/storage/app/oauth-private.key oauth-private.key
ln -s /caminho/para/seu/laravel/storage/app/oauth-public.key oauth-public.key
Certifique-se de substituir /caminho/para/seu/laravel
pelo caminho real para o seu projeto Laravel.
- Atualize o arquivo
.env
Certifique-se de que as variáveis APP_URL e APP_STORAGE em seu arquivo .env tenham os valores corretos:
APP_URL=http://seudominio.com
APP_STORAGE=storage/app
Substitua http://seudominio.com
pelo seu domínio real.
Este não é um passo essencial a seguir para resolver o problema, mas é uma boa prática ao usar o Laravel para construir seus projetos.
- Limpe o cache de configuração
Execute o seguinte comando para limpar o cache de configuração:
php artisan config:clear
Seguindo estas etapas, você deve resolver o erro “oauth-private.key does not exist or is not readable” em seu projeto Laravel.
Considerações finais
Depois de seguir essas etapas, o erro deve ser resolvido. Se você ainda encontrar problemas, verifique novamente os caminhos de arquivo, permissões e variáveis .env
e certifique-se de que seu pacote Laravel Passport esteja corretamente instalado e atualizado.
Comentários