No Application Encryption Key Has Been Specified
Asked Answered
M

27

425

I'm trying to use the Artisan command like this:

php artisan serve

It displays:

Laravel development server started: http://127.0.0.1:8000

However, it won't automatically launch and when I manually enter http://127.0.0.1:8000 it shows this error:

RuntimeException No application encryption key has been specified.

What's the cause of this problem, and how can it be fixed?

I'm using Laravel framework 5.5-dev.

Merce answered 30/6, 2017 at 6:6 Comment(2)
or if your .env file needs to be changed ref: #36277267Wulfenite
The answers below are correct: however, if you first run "php artisan serve" and have an active web server session you will need to restart the server (control-c in the terminal to stop) to get the change to take effect after you add the key to your .env file.Duet
A
692

From Encryption - Laravel - The PHP Framework For Web Artisans:

"Before using Laravel's encrypter, you must set a key option in your config/app.php configuration file. You should use the php artisan key:generate command to generate this key"

From Encryption - Laravel - The PHP Framework For Web Artisans:

"Before using Laravel's encrypter, you must set a key option in your config/app.php configuration file. You should use the php artisan key:generate command to generate this key"

I found it using this query in google.com: "laravel add encrption key" (Yes, it worked even with the typo!)

Note that if the .env file contains the key but you are still getting an application key error, then run php artisan config:cache to clear and reset the config.

Adey answered 30/6, 2017 at 6:8 Comment(7)
Im sorry so are you putting php artisan key:generate in the terminal? because I get an ErrorExceptionWulfenite
For anyone else that ran into my issue input this into the terminal cp .env.example .env php artisan key:generateWulfenite
php artisan key:generate does not even work for me. Gives me the same error No application encryption key has been specified, please any solution?Circuitous
This worked for me, but I first had to rename the file .env.example to .env for this to work, otherwise I was getting ".env: no such file" error.Grasp
Works, but first you need to create an empty .env file, and then copy the contents of .env.example, to your .env file. The .env.exampe file has an 'APP_KEY=' line, where 'APP_KEY' is the key, and nothing is specified as the value. If you don't have the the 'APP_KEY=' line, it seems it will not add the generated key to the .env file. I also then had to run 'php artisan config:cache' and then restart the server, for it to work.Acetabulum
Don't forget 'php artisan config:cache' after you generate your key. You need this especially after moving from another server, or whenever making changes to config or the .env on a working appBarny
If you are using php artisan serve you need to restart the server after changing the .env file.Gusella
S
229

In my case, I also needed to reset the cached config files:

php artisan key:generate
php artisan config:cache
Schaumberger answered 17/1, 2018 at 14:20 Comment(6)
What is php artisan config:cache for? Why is it useful?Milson
@Milson to create/regenerate the cached config filesSchaumberger
In addition to this, first, ensure that your ".env" file at least contains the empty key-option, like: APP_KEY=Strake
Or, for local development use php artisan config:clear, and it won't generate a new cached version.Connolly
php artisan config:cache is what I missed. I've typed it in and the very same moment this page loaded :)Adiaphorous
If Laravel has cached a configuration value, updating the .env file won't have an immediate effect. You need to refresh the configuration cache using php artisan config:cache or clear the old cache with php artisan config:clear for the changes to take effect.Paredes
R
66

Open command prompt in the root folder of your project and run below command:

php artisan key:generate

It will generate Application Key for your application.

You can find the generated application key(APP_KEY) in .env file.

Respite answered 30/6, 2017 at 6:15 Comment(0)
G
34
  1. Copy .env.example to .env:

    cp -a .env.example .env

  2. Generate a key:

    php artisan key:generate

  3. Only then run:

    php artisan serve

Globule answered 10/1, 2018 at 8:14 Comment(1)
Whoops. This was the critical step! A fresh Laravel project needs a .env file or nothing will work. Thanks, Adam.Gotham
N
26

Simply run this command:

php artisan key:generate
Ninurta answered 12/9, 2017 at 6:18 Comment(2)
Yes but many hosting server do not have command line access then how to do?Liborio
a majority support ssh connection. from your terminal run ssh yourusername@server_ipNinurta
A
19

cp .env.example .env if there is no .env file present. php artisan key:generate command works for me. It generates the encryption key

Awed answered 23/7, 2017 at 15:18 Comment(2)
clear the cache using php artisan config:cache command after the above steps.Awed
Cache clearing would mostly be required of the production / staging but not during development. (Unless you like to cache your views during development).Mauriciomaurie
A
15

Open command prompt in the root folder of your project and run

php artisan key:generate

Then

php artisan config:cache

and Then

If you're getting the same error after having key-value, then just copy the APP_KEY value from .env file and paste it to config/app.php with 'key' => 'YOUR KEY',

and then again run

php artisan config:cache
Arhna answered 23/11, 2019 at 10:55 Comment(0)
D
13

I actually had to add a .env file to my project and then copy the contents of .env.example so that the key:generate would work. Not sure why a .env file was not created when I started the project.

Dysphagia answered 11/9, 2017 at 15:35 Comment(3)
It might depend on how you installed Laravel ... "In a fresh Laravel installation, the root directory of your application will contain a .env.example file. If you install Laravel via Composer, this file will automatically be renamed to .env. Otherwise, you should rename the file manually." -#Environment ConfigurationDefoe
also, if you cloned the project from a repo where the .env file was likely in .gitignore, then you would neeed to create it as well. From the Laravel docs: 'Your .env file should not be committed to your application's source control, since each developer / server using your application could require a different environment configuration'Acetabulum
I also found that if you download it from the cloud (I'm using windows) i.e. google-drive, sky-drive etc. the .env, .env.example files are named _env, _env.example etc. In that case I renamed the files accordingly and then just ran 'php artisan key:generate'.Schmeltzer
M
13

In 3 steps:

Generate new key php artisan key:generate

Clear the config php artisan config:clear

Update cache php artisan config:cache

Mccully answered 4/2, 2021 at 11:47 Comment(0)
W
11
php artisan key:generate
php artisan config:cache

worked for me, but it had to be done in a command prompt on Windows.

Doing it inside the terminal in PHPStorm didn't worked.

Willumsen answered 11/2, 2018 at 19:4 Comment(0)
N
10

A common issue you might experience when working on a Laravel application is the exception:

RuntimeException No application encryption key has been specified.

You'll often run into this when you pull down an existing Laravel application, where you copy the .env.example file to .env but don't set a value for the APP_KEY variable.

At the command line, issue the following Artisan command to generate a key:

php artisan key:generate

This will generate a random key for APP_KEY, After completion of .env edit please enter this command in your terminal for clear cache:php artisan config:cache

Also, If you are using the PHP's default web server (eg. php artisan serve) you need to restart the server changing your .env file values. now you will not get to see this error message.

Nikolenikoletta answered 27/2, 2018 at 10:2 Comment(0)
S
8

Simply run command php artisan key:generate.. Still issue exist then run one more command php artisan config:cache and php artisan cache:clear ..

Now run php artisan serve

Symploce answered 28/1, 2022 at 11:39 Comment(0)
B
7

Follow this steps:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve
Blackfish answered 3/2, 2019 at 5:10 Comment(2)
even after generating key in .env file i was getting error. When i ran "php artisaan config:cache" it cleared cache and then only my problem solved. Thanks a lot.Pentheas
Remember to point to the database and close the .env file. If the .env file is open the error will continue.Obreption
P
5

Okay, I'll write another instruction, because didn't find the clear answer here. So if you faced such problems, follow this:

  1. Rename or copy/rename .env.example file in the root of your project to .env.

You should not just create empty .env file, but fill it with content of .env.example.

  1. In the terminal go to the project root directory(not public folder) and run

php artisan key:generate

  1. If everything is okay, the response in the terminal should look like this

Application key [base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=] set successfully.

  1. Now just copy key itself and paste it in your .env file as the value to APP_KEY. Result line should look like this:

APP_KEY=base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=

  1. In terminal run

php artisan config:cache

That's it.

Protrude answered 25/7, 2018 at 11:49 Comment(2)
So php artisan key:generate didn't automatically add the key to your .env file?Hypaesthesia
No, in my case.Protrude
P
5

I found that most answers are incomplete here. In case anyone else is still looking for this:

  1. Check if you have APP_KEY= in your .env, if not just add it without a value.
  2. Run this command: php artisan key:generate. This will fill in the value to the APP_KEY in your .env file.
  3. Finally, run php artisan config:cache in order to clear your config cache and recache your config with the new APP_KEY value.
Palliative answered 2/11, 2020 at 9:21 Comment(0)
T
3

You can generate Application Encryption Key using this command:

php artisan key:generate

Then, create a cache file for faster configuration loading using this command:

php artisan config:cache

Or, serve the application on the PHP development server using this command:

php artisan serve

That's it!

Tetanus answered 1/12, 2018 at 10:6 Comment(0)
R
3

If you git clone some project then this kind of issue may usually occur.

  1. make sure there is .env file
  2. run php artisan key:generate and then it should generate APP_KEY in .env
  3. finally run php artisan serve and it should be working.
Reclinate answered 8/3, 2019 at 11:20 Comment(0)
T
3

If you don't have a .env file then run the below command, else skip this

cp .env.example .env

Then run the below artisan command and it will generate an application key for your project:

php artisan key:generate

Note: Your APP_KEY is inside your .env file.

Tightrope answered 10/7, 2021 at 7:57 Comment(0)
H
3

If after running php artisan key:generate issue is not resolved, check your .env file.

Search for APP_KEY=.

If it doesn't exist, manually add it to .env file and run php artisan key:generate again.

After this you will see generated key in .env file.

Copy that key and paste it in /config/app.php (search for APP_KEY there as well). You should end up with something like this in app.php file

'key' => env('APP_KEY', 'base64:...'),

Then run php artisan serve (You might have to run php artisan config:cache at some point. Not 100% sure when)

Hockenberry answered 29/12, 2021 at 11:21 Comment(0)
A
2

Facing the Same Issue in Laravel v8.49.0 (PHP v8.0.6) Solution
genrate app key

  1. Click

Genrate app key

succesfully genrate key

  1. Click on Refresh now
Autoradiograph answered 2/7, 2021 at 4:44 Comment(0)
R
1

I ran into this issue when I manually copied the contents of my Laravel project (say sites/oldname) into a new directory on my Mac (say, sites/newname). Since I was manually dragging and droppping, it didn't grab the hidden files, namely, '.env'. When I looked more closely at sites/oldname I saw .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml, etc.

The error went away once I copied the hidden files to the new directory.

So, "No Application Encryption Key Has Been Specified" is Laravel speak for "your .env file is missing."

Rocky answered 5/6, 2019 at 15:24 Comment(0)
M
1

Sometimes If everything Fails Use this:

Goto: laravelProject/config/app.php

Find the line: 'key' => and check to what it refers,

It can either be one of two:

Case 1: env('APP_KEY') Case 2: "somekeystring"

For Case 1: Goto your .env file after you have run cp -a .env.example .env Enter a random string like 10101010101010101010101010101010

Now, run php artisan key:generate

Your key will be updated automatically.

For Case 2: set a random string like for value of Key 10101010101010101010101010101010

Now, run php artisan key:generate

Your key will be updated automatically.

Manhood answered 23/9, 2020 at 10:14 Comment(0)
D
1

Run below command to set app key

php artisan key:generate

By running the above command, it sets the key value in .env of your project directory which is referenced in the app config

// .env
APP_KEY=base64:XkrFWC+TGnySY2LsldPXAxuHpyjh8UuoPMt6yy2gJ8U=


// config/app.php
'key' => env(APP_KEY);

Restart your server, in order to reflect the above change.

Distaste answered 2/1, 2023 at 12:30 Comment(0)
S
1

Among many other reasons which I have faced during my years of working with Laravel, most of them are already mentioned here in answers, one strange thing I got this issue in in server was because I forgot to run the command:

php artisan storage:link

Hope this helps someone else, but try it after using other solutions as they address the most common causes.

Superphysical answered 24/3, 2023 at 13:3 Comment(0)
P
0

simply run

php artisan key:generate

its worked for me

Pooler answered 27/12, 2019 at 5:51 Comment(0)
O
0

Try setting correct file permissions

chmod -R 777 storage/
chmod 777 bootstrap/cache/
Organzine answered 23/9, 2022 at 14:39 Comment(0)
M
-1

I had to restart my queue worker using php artisan queue:restart after running php artisan key:generate to get jobs working.

Morbidity answered 16/9, 2019 at 8:19 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.