Nenhuma chave de criptografia de aplicativo foi especificada

255

Sou novo no Laravel e estou tentando usar o comando Artisan ...

php artisan serve

Exibe ...

Servidor de desenvolvimento Laravel iniciado: http://127.0.0.1:8000

No entanto, ele não será iniciado automaticamente e quando eu insiro manualmente http://127.0.0.1:8000, ele mostra este erro:

RuntimeException Nenhuma chave de criptografia de aplicativo foi especificada.

Alguma ideia? Estou usando o Laravel framework 5.5-dev.

Carlos F
fonte
ou se o seu arquivo .env precisar ser alterado ref: stackoverflow.com/questions/36276767/…
#
2
As respostas abaixo estão corretas: no entanto, se você executar o "php artisan serve" pela primeira vez e tiver uma sessão ativa do servidor da web, será necessário reiniciar o servidor (control-c no terminal para parar) para que a alteração entre em vigor depois de você adicione a chave ao seu arquivo .env.
Chris Adams

Respostas:

437

De criptografia - Laravel - O framework PHP para artesãos da Web :

"Antes de usar o criptografador do Laravel, você deve definir uma opção de chave no seu arquivo de configuração config / app.php. Você deve usar o php artisan key:generatecomando para gerar essa chave"

Eu descobri que usando essa consulta complexa da Internet no google.com.br:

"laravel add encryption key" (sim, funcionou mesmo com o erro de digitação!)

Amarnasan
fonte
22
Pesquisei no Google todo o erro e nada apareceu, apenas pesquisei a chave de encriptyon set e descobri. Sinta-se como um tolo. Obrigado. Para quem chega aqui, corra:php artisan key:generate
Carlos F
Me desculpe, então você está colocando php artisan key: generate no terminal? porque eu recebo uma ErrorException
Nameishi 12/08
1
Para qualquer outra pessoa que correu para o meu problema de entrada deste no cp terminal de .env.example .env php artesão chave: gerar
Nameishi
5
php artisan key:generatenem funciona para mim. Dá o mesmo erro Nenhuma chave de criptografia de aplicativo foi especificada , por favor, alguma solução?
Oniya Daniel
7
Isso funcionou para mim, mas primeiro tive que renomear o arquivo .env.example para .env para que isso funcionasse, caso contrário, eu estava recebendo o erro ".env: no file tal".
Webomatik
129

No meu caso, eu também precisei redefinir os arquivos de configuração em cache:

php artisan key:generate
php artisan config:cache
Leonid Dashko
fonte
5
Eu sempre vêm para ver esta resposta depois que eu esqueça de limpar o cache
vijayrana
3
Isso estava faltando em todas as respostas. Muito obrigado! :)
Aman Alam
1
Para que serve php artisan config:cache? Por que isso é útil?
Pathros
2
@Pathros para criar / regenerar os arquivos de configuração em cache
Leonid Dashko
1
Além disso, primeiro, verifique se o seu .envarquivo " " contém pelo menos a opção-chave vazia, como:APP_KEY=
Top-Master
54

Abra o prompt de comando na pasta raiz do seu projeto e execute o comando abaixo:

php artisan key:generate

Ele irá gerar a chave do aplicativo para o seu aplicativo.

Você pode encontrar a chave do aplicativo gerada (APP_KEY) no .envarquivo

skm
fonte
23

Basta executar este comando:

php artisan key:generate
DJ
fonte
1
Sim, mas muitos servidores de hospedagem não têm acesso à linha de comando, então como fazer?
Dhiraj
2
a maioria suporta conexão ssh. do seu terminal execute ssh yourusername @ server_ip
DJ
21
  1. Copiar .env.examplepara .env:

    cp -a .env.example .env

  2. Gere uma chave:

    php artisan key:generate

  3. Somente então execute:

    php artisan serve

Adam Pery
fonte
Ops. Este foi o passo crítico! Um novo projeto do Laravel precisa de um arquivo .env ou nada funcionará. Obrigado Adam.
Eric L.
16

cp .env.example .envse não houver arquivo .env presente. php artisan key:generatecomando funciona para mim. Gera a chave de criptografia

Sabyasachi Ghosh
fonte
4
limpe o cache usando o php artisan config:cachecomando após as etapas acima.
Sabyasachi Ghosh
A limpeza do cache seria necessária principalmente na produção / preparação, mas não durante o desenvolvimento. (A menos que você queira armazenar em cache suas visualizações durante o desenvolvimento).
killstreet
14

Na verdade, tive que adicionar um arquivo .env ao meu projeto e copiar o conteúdo de .env.example para que key:generatefuncionasse. Não sei por que um arquivo .env não foi criado quando iniciei o projeto.

Craig Kollross
fonte
1
Pode depender de como você instalou o Laravel ... " Em uma nova instalação do Laravel, o diretório raiz do seu aplicativo conterá um .env.examplearquivo. Se você instalar o Laravel via Composer, esse arquivo será automaticamente renomeado para .env. Caso contrário, você deverá renomear o arquivo arquivo manualmente. "- #Environment Configuration
On-lineᴇᴌᴀ
Além disso, se você clonou o projeto de um repositório em que o arquivo .env provavelmente estava no .gitignore, também seria necessário criá-lo. De docs Laravel: 'Seu arquivo .env não deve ser comprometida com o controle de origem da sua aplicação, uma vez que cada desenvolvedor / servidor usando seu aplicativo poderia exigir uma configuração de ambiente diferente'
Sami El Maameri
Eu também descobri que se você baixá-lo da nuvem (eu estou usando o Windows), ou seja, google-drive, sky-drive etc., os arquivos .env, .env.example são nomeados _env, _env.example etc. Nesse caso, eu renomeou os arquivos de acordo e então apenas executou 'php artisan key: generate'.
Timothy Kruger
11
php artisan key:generate
php artisan config:cache

funcionou para mim, mas tinha que ser feito em um prompt de comando no Windows.

Fazê-lo dentro do terminal no PHPStorm não funcionou.

José Maria
fonte
11

Um problema comum que você pode enfrentar ao trabalhar em um aplicativo Laravel é a exceção:

RuntimeException Nenhuma chave de criptografia de aplicativo foi especificada.

Você sempre encontrará isso quando abre um aplicativo Laravel existente, no qual copia o .env.examplearquivo, .envmas não define um valor para oAPP_KEY variável.

Na linha de comandos, emita o seguinte comando Artisan para gerar uma chave:

php artisan key:generate

Isso gerará uma chave aleatória para APP_KEY, Após a conclusão do.env edição, digite este comando no seu terminal para limpar o cache:php artisan config:cache

Além disso, se você estiver usando o servidor da web padrão do PHP (por exemplo php artisan serve), precisará reiniciar o servidor alterando .envos valores do arquivo. agora você não verá esta mensagem de erro.

Udhav Sarvaiya
fonte
9

Abra o prompt de comando na pasta raiz do seu projeto e execute

php artisan key:generate

Então

php artisan config:cache

e depois

Se você estiver recebendo o mesmo erro após ter o valor-chave, copie o valor APP_KEY do arquivo .env e cole-o no config / app.php com 'key' => 'YOUR KEY',

e depois corra novamente

php artisan config:cache
Kaushik
fonte
7

Siga estes passos:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve
Skandarajah Shyamalan
fonte
mesmo depois de gerar a chave no arquivo .env, eu estava recebendo erro. Quando executei o "php artisaan config: cache", ele limpou o cache e apenas o meu problema foi resolvido. Muito obrigado.
Pankaj
6

Ok, vou escrever outra instrução, porque não encontrou a resposta clara aqui. Portanto, se você enfrentou esses problemas, siga este procedimento:

  1. Renomeie ou copie / renomeie o arquivo .env.example na raiz do seu projeto para .env .

Você não deve apenas criar um arquivo .env vazio , mas preenchê-lo com o conteúdo de .env.example .

  1. No terminal, vá para o diretório raiz do projeto (não para a pasta pública) e execute

chave do artesão php: gerar

  1. Se estiver tudo bem, a resposta no terminal deve ficar assim

Chave do aplicativo [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] definida com êxito.

  1. Agora, basta copiar a própria chave e colá-la no seu arquivo .env como o valor para APP_KEY. A linha de resultado deve ficar assim:

APP_KEY = base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. Na execução do terminal

php artisan config: cache

É isso aí.

Dmitry Gordienko
fonte
Portanto php artisan key:generate, não adicionou automaticamente a chave ao seu arquivo .env?
Rwd
Não, no meu caso.
Dmitry Gordienko
4

Você pode gerar a chave de criptografia de aplicativo usando este comando:

php artisan key:generate

Em seguida, crie um arquivo de cache para um carregamento mais rápido da configuração usando este comando:

php artisan config:cache

Ou atenda ao aplicativo no servidor de desenvolvimento PHP usando este comando:

php artisan serve

É isso aí!

Prakash Pazhanisamy
fonte
3

Se você clicou em algum projeto, esse tipo de problema geralmente pode ocorrer.

  1. verifique se há .env arquivo
  2. executar php artisan key:generatee, em seguida, deve gerar APP_KEY em .env
  3. finalmente corra php artisan servee deve estar funcionando.
Jasbin Karki
fonte
1

Corri para esse problema quando copiei manualmente o conteúdo do meu projeto Laravel (digamos sites / oldname) em um novo diretório no meu Mac (digamos sites / newname). Como eu estava arrastando e soltando manualmente, ele não pegou os arquivos ocultos, ou seja, '.env'. Quando examinei mais de perto os sites / nome antigo, vi .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml etc.

O erro desapareceu depois que eu copiei os arquivos ocultos para o novo diretório.

Portanto, "Nenhuma chave de criptografia de aplicativo foi especificada" é o Laravel fala por "seu arquivo .env está ausente".

JJ Rohrer
fonte
0

Eu tive que reiniciar meu trabalhador de fila usando php artisan queue:restartapós a execução php artisan key:generatepara fazer os trabalhos funcionarem.

Nenotlep
fonte
0

simplesmente corra

php artisan key:generate

funcionou para mim

Dimuthu Maduranga
fonte
0

No meu caso, ao clonar o projeto do git, não havia .env

Arquivo. Então, copio o .envarquivo do projeto de origem e colo no meu projeto atual, altero sua configuração do banco de dados e ele é executado com êxito.

Pawan Verma
fonte