When to generate a new Application Key in Laravel?
Since it automatically sets it for me in my .env
file when I create the app, I'm not sure when I should run it.
In addition to that, if a second developer comes in, and clones the app, does he/she need to run php artisan key:generate
?
How do we know exactly when to run php artisan key:generate
?
php artisan key:generate
is a command that sets the APP_KEY
value in your .env
file. By default, this command is run following a composer create-project laravel/laravel
command. If you use a version control system like git
to manage your project for development, calling git push ...
will push a copy of your Laravel project to wherever it is going, but will not include your .env
file. Therefore, if someone clones your project using git clone ...
they will have to manually enter php artisan key:generate
for their app to function correctly.
So, TL:DR the only time you need to call php artisan key:generate
is following a clone
of a pre-created Laravel project.
Side note: If you try to run a Laravel project with your APP_KEY
set to SomeRandomString
(which is the default in your .env.example
file, you will actually get an error:
No supported encrypter found. The cipher and / or key length are invalid.
The most important thing to do when cloning a laravel project is to first run composer update
then composer install
. The composer install
command installs any required dependencies for that laravel app.
The steps I took to clone a laravel project required the php artisan key:generate
command. I can see in my .env
file that there is an updated APP_KEY=base64:xxxxxxxxxxxxxxxxxxxx
after running this command.