No se ha especificado ninguna clave de cifrado de aplicación

255

Soy nuevo en Laravel y estoy tratando de usar el comando Artisan ...

php artisan serve

Muestra...

Se inició el servidor de desarrollo Laravel: http://127.0.0.1:8000

Sin embargo, no se iniciará automáticamente y cuando ingrese manualmente http://127.0.0.1:8000 , muestra este error:

RuntimeException No se ha especificado ninguna clave de cifrado de la aplicación.

¿Algunas ideas? Estoy usando Laravel framework 5.5-dev.

Carlos F
fuente
o si su archivo .env necesita ser cambiado ref: stackoverflow.com/questions/36276767/…
Nameishi
2
Las respuestas a continuación son correctas: sin embargo, si primero ejecuta "php artisan serve" y tiene una sesión de servidor web activa, deberá reiniciar el servidor (control-c en el terminal para detener) para que el cambio surta efecto después de que usted agregue la clave a su archivo .env.
Chris Adams

Respuestas:

437

Desde Cifrado - Laravel - El marco PHP para artesanos web :

"Antes de usar el encriptador de Laravel, debe establecer una opción clave en su archivo de configuración config / app.php. Debe usar el php artisan key:generatecomando para generar esta clave"

Descubrí que usando esta compleja consulta de internet en google.com:

"laravel add encrption key" (Sí, ¡funcionó incluso con el error tipográfico!)

Amarnasan
fuente
22
Busqué en Google todo el error y no apareció nada, simplemente busqué en Google la clave de encriptyon y lo descubrí. Siéntete como un tonto. Gracias. Para cualquiera que llegue aquí solo corre:php artisan key:generate
Carlos F
Lo siento, ¿estás poniendo php artisan key: generate en la terminal? porque recibo una ErrorException
Nameishi
1
Para cualquier otra persona que se haya encontrado con mi problema, ingrese esto en el terminal cp .env.example .env php artisan key: generate
Nameishi
55
php artisan key:generateNi siquiera funciona para mí. Me da el mismo error. No se ha especificado una clave de cifrado de la aplicación , ¿hay alguna solución?
Oniya Daniel
77
Esto funcionó para mí, pero primero tuve que cambiar el nombre del archivo .env.example a .env para que esto funcione, de lo contrario recibí el error ".env: no such file".
Webomatik
129

En mi caso, también necesitaba restablecer los archivos de configuración en caché:

php artisan key:generate
php artisan config:cache
Leonid Dashko
fuente
55
Siempre vengo a ver esta respuesta después de que me olvido de borrar el caché
vijayrana
3
Esto faltaba en todas las respuestas. Muchas gracias! :)
Aman Alam
1
Lo que es php artisan config:cachepara? ¿Por qué es útil?
Pathros
2
@Pathros para crear / regenerar los archivos de configuración en caché
Leonid Dashko
1
Además de esto, primero, asegúrese de que su " .env" archivo al menos contenga la opción clave vacía, como:APP_KEY=
Top-Master
54

Abra el símbolo del sistema en la carpeta raíz de su proyecto y ejecute el siguiente comando:

php artisan key:generate

Generará la clave de aplicación para su aplicación.

Puede encontrar la clave de aplicación generada (APP_KEY) en el .envarchivo.

skm
fuente
23

Simplemente ejecute este comando:

php artisan key:generate
DJ
fuente
1
Sí, pero muchos servidores de alojamiento no tienen acceso a la línea de comandos, ¿cómo hacerlo?
Dhiraj
2
una conexión ssh de soporte mayoritario. desde su terminal ejecute ssh yourusername @ server_ip
DJ
21
  1. Copiar .env.examplea .env:

    cp -a .env.example .env

  2. Generar una clave:

    php artisan key:generate

  3. Solo entonces corre:

    php artisan serve

Adam Pery
fuente
Whoops Este fue el paso crítico! Un nuevo proyecto de Laravel necesita un archivo .env o nada funcionará. Gracias Adam.
Eric L.
16

cp .env.example .envsi no hay un archivo .env presente. php artisan key:generateEl comando funciona para mí. Genera la clave de cifrado.

Sabyasachi Ghosh
fuente
44
borre el caché usando el php artisan config:cachecomando después de los pasos anteriores.
Sabyasachi Ghosh
La limpieza de caché se requeriría principalmente de la producción / puesta en escena, pero no durante el desarrollo. (A menos que desee almacenar en caché sus vistas durante el desarrollo).
killstreet
14

De hecho, tuve que agregar un archivo .env a mi proyecto y luego copiar el contenido de .env.example para que key:generatefuncionara. No estoy seguro de por qué no se creó un archivo .env cuando comencé el proyecto.

Craig Kollross
fuente
1
Puede depender de cómo instaló Laravel ... " En una nueva instalación de Laravel, el directorio raíz de su aplicación contendrá un .env.examplearchivo. Si instala Laravel a través de Composer, este archivo cambiará automáticamente su nombre .env. De lo contrario, debe cambiar el nombre del archivo manualmente. "- # Configuración del
entorno
también, si clonaste el proyecto desde un repositorio donde el archivo .env probablemente estaba en .gitignore, entonces necesitarías crearlo también. De los documentos de Laravel: 'Su archivo .env no debe comprometerse con el control de origen de su aplicación, ya que cada desarrollador / servidor que use su aplicación podría requerir una configuración de entorno diferente'
Sami El Maameri
También descubrí que si lo descarga desde la nube (estoy usando Windows), es decir, google-drive, sky-drive, etc., los archivos .env, .env.example se denominan _env, _env.example, etc. En ese caso, renombró los archivos en consecuencia y luego ejecutó 'php artisan key: generate'.
Timothy Kruger
11
php artisan key:generate
php artisan config:cache

funcionó para mí, pero tenía que hacerse en un símbolo del sistema en Windows.

Hacerlo dentro de la terminal en PHPStorm no funcionó.

Jose Maria
fuente
11

La excepción es un problema común que puede experimentar al trabajar en una aplicación Laravel:

RuntimeException No se ha especificado ninguna clave de cifrado de la aplicación.

A menudo se encontrará con esto cuando despliegue una aplicación Laravel existente, donde copie el .env.examplearchivo .envpero no establezca un valor para la APP_KEYvariable.

En la línea de comando, emita el siguiente comando Artisan para generar una clave:

php artisan key:generate

Esto generará una clave aleatoria para APP_KEY, Después de completar la .envedición, ingrese este comando en su terminal para borrar el caché:php artisan config:cache

Además, si está utilizando el servidor web predeterminado de PHP (por ejemplo php artisan serve), debe reiniciar el servidor cambiando los .envvalores de sus archivos. ahora no podrá ver este mensaje de error.

Udhav Sarvaiya
fuente
9

Abra el símbolo del sistema en la carpeta raíz de su proyecto y ejecute

php artisan key:generate

Luego

php artisan config:cache

y entonces

Si obtiene el mismo error después de tener el valor clave, simplemente copie el valor APP_KEY del archivo .env y péguelo en config / app.php con 'key' => 'YOUR KEY',

y luego corre de nuevo

php artisan config:cache
kaushik
fuente
7

Sigue estos pasos:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve
Skandarajah Shyamalan
fuente
incluso después de generar la clave en el archivo .env recibí un error. Cuando ejecuté "php artisaan config: cache" borró el caché y luego solo mi problema se resolvió. Muchas gracias.
Pankaj
6

Bien, escribiré otra instrucción, porque no encontré la respuesta clara aquí. Entonces, si enfrentó tales problemas, siga esto:

  1. Cambie el nombre o copie / cambie el nombre del archivo .env.example en la raíz de su proyecto a .env .

No solo debe crear un archivo .env vacío , sino llenarlo con contenido de .env.example .

  1. En la terminal, vaya al directorio raíz del proyecto (no a la carpeta pública) y ejecute

clave artesanal php: generar

  1. Si todo está bien, la respuesta en la terminal debería verse así

La clave de aplicación [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] se configuró correctamente.

  1. Ahora solo copie la clave y péguela en su archivo .env como el valor de APP_KEY. La línea de resultado debería verse así:

APP_KEY = base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. En ejecución de terminal

php artisan config: caché

Eso es.

Dmitry Gordienko
fuente
Entonces, php artisan key:generate¿no agregó automáticamente la clave a su archivo .env?
Rwd
No, en mi caso
Dmitry Gordienko
4

Puede generar la clave de cifrado de la aplicación con este comando:

php artisan key:generate

Luego, cree un archivo de caché para cargar la configuración más rápido con este comando:

php artisan config:cache

O, sirva la aplicación en el servidor de desarrollo PHP usando este comando:

php artisan serve

¡Eso es!

Prakash Pazhanisamy
fuente
3

Si logra clonar algún proyecto, este tipo de problema generalmente puede ocurrir.

  1. asegúrese de que haya un .envarchivo
  2. ejecutar php artisan key:generatey luego debería generar APP_KEY en .env
  3. finalmente corre php artisan servey debería estar funcionando.
Jasbin Karki
fuente
1

Me encontré con este problema cuando copié manualmente el contenido de mi proyecto Laravel (por ejemplo, sitios / nombre antiguo) en un nuevo directorio en mi Mac (por ejemplo, sitios / nombre nuevo). Como estaba arrastrando y soltando manualmente, no capturó los archivos ocultos, a saber, '.env'. Cuando miré más de cerca los sitios / nombre antiguo vi .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml, etc.

El error desapareció una vez que copié los archivos ocultos en el nuevo directorio.

Por lo tanto, "No se ha especificado ninguna clave de cifrado de la aplicación" es Laravel hablar de "falta el archivo .env".

JJ Rohrer
fuente
0

Tuve que reiniciar mi trabajador de cola php artisan queue:restartdespués de ejecutarlo php artisan key:generatepara que los trabajos funcionen.

Nenotlep
fuente
0

simplemente corre

php artisan key:generate

me ha funcionado

Dimuthu Maduranga
fuente
0

En mi caso, mientras clonaba el proyecto desde git no había .env

expediente. Así que copio el .envarchivo del proyecto fuente y lo pego en mi proyecto actual y cambio su configuración de base de datos y se ejecuta con éxito.

Pawan Verma
fuente