Aucune clé de chiffrement d'application n'a été spécifiée

255

Je suis nouveau à Laravel et j'essaie d'utiliser la commande Artisan ...

php artisan serve

Il affiche...

Le serveur de développement Laravel a démarré: http://127.0.0.1:8000

Cependant, il ne se lancera pas automatiquement et lorsque j'entre manuellement http://127.0.0.1:8000, il affiche cette erreur:

RuntimeException Aucune clé de chiffrement d'application n'a été spécifiée.

Des idées? J'utilise le framework Laravel 5.5-dev.

Carlos F
la source
ou si votre fichier .env doit être modifié ref: stackoverflow.com/questions/36276767/…
Nameishi
2
Les réponses ci-dessous sont correctes: cependant, si vous exécutez d'abord "php artisan serve" et avez une session de serveur Web active, vous devrez redémarrer le serveur (control-c dans le terminal pour arrêter) pour que le changement prenne effet après vous. ajoutez la clé à votre fichier .env.
Chris Adams

Réponses:

437

From Encryption - Laravel - Le framework PHP pour les artisans du Web :

"Avant d'utiliser le crypteur de Laravel, vous devez définir une option de clé dans votre fichier de configuration config / app.php. Vous devez utiliser la php artisan key:generatecommande pour générer cette clé"

J'ai trouvé qu'en utilisant cette requête Internet complexe dans google.com:

"laravel add encrption key" (Oui, cela fonctionnait même avec la faute de frappe!)

Amarnasan
la source
22
J'ai googlé toute l'erreur et rien n'est apparu, j'ai simplement googlé la clé de script et découvert. Sentez-vous comme un idiot. Merci. Pour ceux qui arrivent ici, il suffit de courir:php artisan key:generate
Carlos F
Je suis désolé, vous mettez donc la clé artisan php: générer dans le terminal? parce que je reçois une exception ErrorException
Nameishi
1
Pour toute autre personne ayant rencontré mon problème, entrez ceci dans la clé artisanale du terminal cp .env.example .env php: generate
Nameishi
5
php artisan key:generatene fonctionne même pas pour moi. Me donne la même erreur Aucune clé de chiffrement d'application n'a été spécifiée , veuillez une solution?
Oniya Daniel
7
Cela a fonctionné pour moi, mais j'ai d'abord dû renommer le fichier .env.example en .env pour que cela fonctionne, sinon j'obtenais l'erreur ".env: no such file".
Webomatik
129

Dans mon cas, j'avais également besoin de réinitialiser les fichiers de configuration mis en cache:

php artisan key:generate
php artisan config:cache
Leonid Dashko
la source
5
Je viens toujours voir cette réponse après avoir oublié de vider le cache
vijayrana
3
Cela manquait dans toutes les réponses. Merci beaucoup! :)
Aman Alam
1
À quoi ça sert php artisan config:cache? Pourquoi est-ce utile?
Pathros
2
@Pathros pour créer / régénérer les fichiers de configuration mis en cache
Leonid Dashko
1
En plus de cela, assurez-vous d'abord que votre " .env" fichier contient au moins l'option clé vide, comme:APP_KEY=
Top-Master
54

Ouvrez l'invite de commande dans le dossier racine de votre projet et exécutez la commande ci-dessous:

php artisan key:generate

Il générera la clé d'application pour votre application.

Vous pouvez trouver la clé d'application générée (APP_KEY) dans un .envfichier.

skm
la source
23

Exécutez simplement cette commande:

php artisan key:generate
DJ
la source
1
Oui mais de nombreux serveurs d'hébergement n'ont pas d'accès en ligne de commande alors comment faire?
Dhiraj
2
une connexion ssh de support majoritaire. à partir de votre terminal, exécutez ssh votre nom d'utilisateur @ server_ip
DJ
21
  1. Copier .env.exampleà .env:

    cp -a .env.example .env

  2. Générez une clé:

    php artisan key:generate

  3. Ensuite, exécutez:

    php artisan serve

Adam Pery
la source
Oups. C'était l'étape critique! Un nouveau projet Laravel a besoin d'un fichier .env ou rien ne fonctionnera. Merci, Adam.
Eric L.
16

cp .env.example .envsi aucun fichier .env n'est présent. php artisan key:generatecommande fonctionne pour moi. Il génère la clé de cryptage

Sabyasachi Ghosh
la source
4
vider le cache à l'aide de la php artisan config:cachecommande après les étapes ci-dessus.
Sabyasachi Ghosh
La suppression du cache serait principalement requise pour la production / le transfert, mais pas pendant le développement. (Sauf si vous souhaitez mettre en cache vos vues pendant le développement).
killstreet
14

En fait, j'ai dû ajouter un fichier .env à mon projet, puis copier le contenu de .env.example pour que key:generatecela fonctionne. Je ne sais pas pourquoi un fichier .env n'a pas été créé lorsque j'ai démarré le projet.

Craig Kollross
la source
1
Cela peut dépendre de la façon dont vous avez installé Laravel ... " Dans une nouvelle installation de Laravel, le répertoire racine de votre application contiendra un .env.examplefichier. Si vous installez Laravel via Composer, ce fichier sera automatiquement renommé en .env. Sinon, vous devez renommer le fichier manuellement. "- #Environment Configuration
Sᴀᴍ Onᴇᴌᴀ
aussi, si vous avez cloné le projet à partir d'un référentiel où le fichier .env était probablement dans .gitignore, alors vous auriez besoin de le créer également. D'après les documents de Laravel: «Votre fichier .env ne doit pas être validé pour le contrôle de code source de votre application, car chaque développeur / serveur utilisant votre application peut nécessiter une configuration d'environnement différente»
Sami El Maameri
J'ai également constaté que si vous le téléchargez à partir du cloud (j'utilise Windows), c'est-à-dire google-drive, sky-drive, etc., les fichiers .env, .env.example sont nommés _env, _env.example etc. Dans ce cas, je renommé les fichiers en conséquence, puis juste exécuté «clé artisan php: générer».
Timothy Kruger
11
php artisan key:generate
php artisan config:cache

travaillé pour moi, mais cela devait être fait dans une invite de commande sur Windows.

Le faire à l'intérieur du terminal dans PHPStorm n'a pas fonctionné.

José Maria
la source
11

Un problème courant que vous pouvez rencontrer lorsque vous travaillez sur une application Laravel est l'exception:

RuntimeException Aucune clé de chiffrement d'application n'a été spécifiée.

Vous rencontrerez souvent cela lorsque vous déroulez une application Laravel existante, dans laquelle vous copiez le .env.examplefichier .envmais ne définissez pas de valeur pour la APP_KEYvariable.

Sur la ligne de commande, exécutez la commande Artisan suivante pour générer une clé:

php artisan key:generate

Cela générera une clé aléatoire pour APP_KEY, Une fois la .envmodification terminée , entrez cette commande dans votre terminal pour vider le cache:php artisan config:cache

De plus, si vous utilisez le serveur Web par défaut de PHP (par exemple php artisan serve), vous devez redémarrer le serveur en modifiant vos .envvaleurs de fichier. vous ne verrez plus ce message d'erreur.

Udhav Sarvaiya
la source
9

Ouvrez l'invite de commande dans le dossier racine de votre projet et exécutez

php artisan key:generate

ensuite

php artisan config:cache

puis

Si vous obtenez la même erreur après avoir la valeur-clé, copiez simplement la valeur APP_KEY du fichier .env et collez-la dans config / app.php avec 'key' => 'YOUR KEY',

puis exécutez à nouveau

php artisan config:cache
kaushik
la source
7

Suivez ces étapes:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve
Skandarajah Shyamalan
la source
même après avoir généré la clé dans le fichier .env, j'obtenais une erreur. Lorsque j'ai exécuté "php artisaan config: cache", il a effacé le cache, puis seul mon problème a été résolu. Merci beaucoup.
Pankaj
6

D'accord, je vais écrire une autre instruction, car je n'ai pas trouvé la réponse claire ici. Donc, si vous avez rencontré de tels problèmes, procédez comme suit:

  1. Renommez ou copiez / renommez le fichier .env.example à la racine de votre projet en .env .

Vous ne devez pas simplement créer un fichier .env vide , mais le remplir avec le contenu de .env.example .

  1. Dans le terminal, allez dans le répertoire racine du projet (pas dans le dossier public) et exécutez

php artisan key: générer

  1. Si tout va bien, la réponse dans le terminal devrait ressembler à ceci

La clé d'application [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] a été définie avec succès.

  1. Maintenant, copiez simplement la clé elle-même et collez-la dans votre fichier .env comme valeur dans APP_KEY. La ligne de résultat doit ressembler à ceci:

APP_KEY = base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. En exécution de terminal

php artisan config: cache

C'est tout.

Dmitry Gordienko
la source
Vous php artisan key:generaten'avez donc pas ajouté automatiquement la clé à votre fichier .env?
Rwd
Non, dans mon cas.
Dmitry Gordienko
4

Vous pouvez générer une clé de chiffrement d'application à l'aide de cette commande:

php artisan key:generate

Ensuite, créez un fichier cache pour un chargement de configuration plus rapide à l'aide de cette commande:

php artisan config:cache

Ou, servez l'application sur le serveur de développement PHP à l'aide de cette commande:

php artisan serve

C'est tout!

Prakash Pazhanisamy
la source
3

Si vous git clonez un projet, ce type de problème peut généralement se produire.

  1. assurez-vous qu'il y a .env fichier
  2. exécuter php artisan key:generateet il devrait générer APP_KEY en .env
  3. enfin exécuté php artisan serveet il devrait fonctionner.
Jasbin Karki
la source
1

J'ai rencontré ce problème lorsque j'ai copié manuellement le contenu de mon projet Laravel (disons sites / oldname) dans un nouveau répertoire sur mon Mac (disons, sites / newname). Étant donné que je faisais glisser et déposer manuellement, il n'a pas saisi les fichiers cachés, à savoir «.env». Quand j'ai regardé de plus près les sites / oldname, j'ai vu .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml, etc.

L'erreur a disparu une fois que j'ai copié les fichiers cachés dans le nouveau répertoire.

Donc, "Aucune clé de chiffrement d'application n'a été spécifiée" est Laravel parler de "votre fichier .env est manquant."

JJ Rohrer
la source
0

J'ai dû redémarrer mon agent de file d'attente php artisan queue:restartaprès l'avoir exécuté php artisan key:generatepour que les travaux fonctionnent.

Nenotlep
la source
0

il suffit de courir

php artisan key:generate

ça a marché pour moi

Dimuthu Maduranga
la source
0

Dans mon cas, lors du clonage du projet depuis git, il n'y avait pas .env

fichier. Je copie donc le .envfichier du projet source et le colle dans mon projet actuel et change sa configuration de base de données et il s'exécute avec succès.

Pawan Verma
la source