Después de actualizar a Laravel 5.2, no .envse lee ninguno de mis valores de archivo. Seguí las instrucciones de actualización ; ninguno de mis archivos de configuración fue cambiado excepto auth.php. Todos funcionaban bien en la versión anterior, 5.1.19
.env contiene valores como
DB_DATABASE=mydb
DB_USERNAME=myuser
config/database.php contiene
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Me sale este error:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Claramente no tirando de mi configuración env. Esto está afectando a todos y cada uno de mis archivos de configuración, incluidos los de terceros, como bugsnag.
También lo intenté
php artisan config:clear
php artisan cache:clear
Actualizar
Molesto php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Intenté instalar una copia nueva de Laravel 5.2. Básicamente, solo copié en mi appcarpeta; no se incluyen paquetes de compositor adicionales. Sigo teniendo el mismo problema. Tengo otros proyectos de Laravel 5.2 en el mismo servidor que funcionan bien.
fuente

.envRespuestas:
De las notas de actualización oficiales de Laravel 5.2:
Referencia: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
fuente
php artisan config:cachelo resolvió para mí, nada más había ayudado. Ni siquieraphp artisan config:clear- ¡gracias!php artisan config:cleares lo único que funcionó para míphp artisan config:clearfuncionó para mí. No hice config: cache antes, así que me pareció un poco extraño tener que borrar el caché..envlugar de.env.examplearchivoSi alguna de sus
.envvariables contiene espacios en blanco, asegúrese de incluirlas entre comillas dobles. Por ejemplo:SITE_NAME="My website"No olvide borrar su caché antes de realizar la prueba:
fuente
.envarchivo, ejecute elphp artisan config:cache & php artisan config:clearcomando. Funcionará.Guau. Caramba. Es porque tenía un valor env con un espacio en él, no entre comillas
Esta
Cambiado a esto
Arreglado. Creo que esto tuvo que ver con Laravel 5.2 ahora actualizando vlucas / phpdotenv de 1.1.1 a 2.1.0
fuente
.envmenos de 5.2, mientras que en 5.1 no.phpdotenv, pero Laravel aún sabe que hay un.envarchivo que debe incluirse y que no tuvo éxito, pero no se molesta en decírselo a nadie.Para mí ha funcionado esto en este orden:
Y he probado todos los descansos sin suerte.
fuente
Tuve un problema similar en mi
config/services.phpy lo resolví usando los comandosconfig clearyoptimize:fuente
Para mí funcionó lo siguiente
fuente
ejecuta esto:
luego
php artisan config:cachefuente
Tuve el mismo problema en el entorno local, lo resolví
fuente
Puede resolver el problema con la siguiente recomendación
Recomendación 1:
Debe usar el archivo .env a través de los archivos de configuración, lo que significa que debe leer el archivo .env de los archivos de configuración (como /config/app.php o /config/database.php), luego puede usar la configuración archivos desde cualquier ubicación de su proyecto.
Recomendación 2: establezca su valor env entre comillas dobles
Recomendación 3: Mantenga la siguiente secuencia de comandos después de cambiar cualquier configuración o valor env.
Recomendación 4: cuando la sintaxis1 no funciona, puede probar con otra sintaxis2
Recomendación 5: cuando su número de usuarios es alto / más , debe aumentar el tamaño de la memoria relacionada en la configuración del servidor .
Recomendación 6: establezca un valor probable predeterminado cuando lea la variable .env.
fuente
Cuando disparó el comando
php artisan config:cache, eliminará todas lasenvvariables yenv()dará valores nulos, intente ejecutar el siguiente comando y aumente allí,env()nuevamente comenzará a capturar todas lasenvvariablesfuente
Me perdí esto en las instrucciones de actualización:
Al agregar esta línea, el
.envarchivo local se leyó correctamente.fuente
La simplicidad es el poder:
Usted recibirá:
¡Se borró la caché de configuración!
¡Configuración almacenada en caché con éxito!
fuente
Lo mismo sucede cuando: el puerto está en su .env local
de nuevo las comillas dobles hacen el truco
y entonces
fuente
eliminar caché usando:
fuente
Además de lo que sugirió @andrewtweber, asegúrese de no tener espacios entre KEY = y el valor a menos que esté entre comillas
Archivo .env , por ejemplo:
a:
fuente
Me encontré con este mismo problema en mi local, y probé todas las respuestas aquí, pero fue en vano. Solo esto funcionó para mí,
php artisan config:clearyrestart server. ¡Funciona de maravilla!fuente
php artisan config:cache,php artisan config:clearentoncesphp artisan cache:clearResolví este problema generando una nueva clave usando el comando:
php artisan key:generatefuente
Si llamó a config: cache durante el desarrollo local, puede deshacer esto eliminando el archivo bootstrap / cache / config.php. y esto es trabajo para mí.
fuente
Si llamó a config: cache durante el desarrollo local, puede deshacer esto eliminando el archivo bootstrap / cache / config.php. y esto es trabajo para mí.
@Payal Pandav ha dado el comentario anterior.
Quiero contar una solución sencilla. Simplemente edite el archivo config.php en la carpeta bootstrap / cache /. Y cambia las credenciales. Esto funcionó para mí. No elimine este archivo, ya que puede contener otros datos cruciales en el entorno de producción.
fuente
En mi caso, laravel 5.7
env('APP_URL')no funciona peroconfig('app.url')funciona. Si agrego una nueva variable aenvy a la configuración, no funciona, pero después dephp artisan config:cacheque comienza, funciona.fuente
php artisan optimize:clearphp artisan config:clear, borrará su caché de configuración y no se generará nuevamente y cuando entre en producción, puede ejecutarphp artisan config:cachepara almacenar en caché sus configuracionesSi ejecuta este
php artisan config:cachecomando en la consola, almacenará todo el contenido del archivo .env en la caché, después de este comando, si agrega algún contenido al archivo .env, no estará disponible hasta que ejecute elphp artisan config:clearcomandofuente
Me enfrento al mismo problema mucho tiempo durante el desarrollo larvario. Algunas veces env deja de funcionar y no devuelve ningún valor. esa razón puede ser diferente dependiendo de su situación. pero en mi caso hace unos dias solo corro
así que tenga cuidado al usar este comando. porque borrará todos los datos de configuración de su caché. así que después de eso, no devolverá ningún valor. Entonces, en esta situación, debe usar esto primero si ha ejecutado el comando PHP artisan config :: clear .
fuente
Experimenté esto. La razón fue que Apache (usuario www-data) no podía leer .env debido a los permisos de archivo. Así que cambié los permisos del archivo para asegurarme de que el servidor (apache) tenía permisos de lectura para el archivo. Solo eso y boom, ¡todo estaba funcionando ahora!
Actualización: la
forma de hacer esto varía, dependiendo de quién sea el propietario del archivo .env, pero asumiendo que pertenece al
www-datagrupo Apache , puede hacer esto:Modifíquelo según su estructura de permisos.
fuente
So i changed the file permissions to ensure that the server (apache) had read permissions to the file.este es un enfoque realmente incorrecto. Debería haber arreglado la configuración de apaxhe para que sirva a este sitio en particular como propietario que posee estos archivosCometí el error al hacer dd / die / dump en el
index.phparchivo. Esto hace que el sistema no regenere las configuraciones.Basta con volcar en los archivos de vista. Los cambios en el
.envarchivo se actualizan instantáneamente.fuente
Tuve algunos problemas con esto. Parecía ser un problema de permiso de archivo en algún lugar de la aplicación, no el archivo .env.
Tuve que - detener mi ventana acoplable - usar chown para establecer los derechos de propiedad de mi propio usuario para todo el proyecto - iniciar la ventana acoplable nuevamente
Esta vez funcionó.
fuente
Probé casi todo lo anterior. Terminé haciendo
chmod 666 .env
que funcionó. Este problema parece seguir apareciendo en la aplicación que heredé, sin embargo, esta vez más reciente fue después de agregar un .env.testing. Ejecutando Laravel 5.8
fuente