En Laravel, las variables de entorno (
.env) son esenciales para separar configuración sensible (credenciales, claves, URLs) del código. Un manejo incorrecto puede exponer datos confidenciales o provocar errores en distintos entornos (desarrollo, staging, producción). Por ello, conocer las buenas prácticas es clave.¿Qué son las variables de entorno en Laravel?
Laravel carga la configuración desde archivos
que no deben incluirse en el repositorio (están en.env
)..gitignoreSe usan para definir: base de datos, credenciales de servicios externos (APIs, correo, almacenamiento), parámetros específicos de entorno.
En los archivos de configuración (
), se suele usar el helperconfig/*.php
.env('CLAVE', 'valor_por_defecto')
Buenas prácticas y consejos de seguridad
No versionar tu
real.env
Asegúrate de que el archivo
esté excluido del control de versiones. En su lugar, versiónalo en un ejemplo con valores genéricos:.env
..env.exampleDefine primero en
.env.example
Antes de que alguien use una variable en tu aplicación, inclúyela en
. Así otros desarrolladores sabrán qué valores deben definir..env.exampleCaché de configuración (config:cache / config:clear)
Una vez que hagas cambios en tu
, limpia y recompila la caché de configuración para que Laravel tome los nuevos valores:.envphp artisan config:clear php artisan config:cacheValidar variables obligatorias
En versiones recientes puedes usar
para lanzar una excepción si una variable no existe, asegurando que no falte algo crítico.Env::getOrFail('CLAVE')Encriptar el archivo
en producción.env
Laravel ofrece desde la versión 9 un comando para encriptar el
:.envphp artisan env:encryptEsto genera un
que solo se puede descifrar con la clave correspondiente..env.encrypted
Luego, puedes usar
para obtener elphp artisan env:decrypt
cuando sea necesario..envEvitar acceder a
directamente en tu lógica de negocioenv()
En lugar de llamar
en controladores o modelos, pasa los valores por configuración (env()
). Así, tu código permanece más desacoplado y testeable.config()Seguridad adicional: delimitar permisos del servidor
Asegúrate de que el archivo
tenga permisos restringidos (por ejemplo, 640 o 600), de modo que solo el servidor/app pueda leerlo, no otros usuarios del sistema..envRotación de credenciales y variables periódicamente
Si una clave externa (por ejemplo, API Key) cambia, actualízala y vuelve a desplegar con la nueva versión. No dejes variables obsoletas flotando.
Errores comunes que debes evitar
Olvidar limpiar la caché de configuración tras modificar el
..envEscribir valores sensibles directamente en archivos de configuración en lugar de variables de entorno.
Olvidar encriptar o proteger el
en producción..envNo validar que una variable exista, provocando un valor
inesperado.null
Conclusión
El correcto manejo de las variables de entorno en Laravel es fundamental para la seguridad, la portabilidad del código y la estabilidad entre entornos. Con prácticas como versionar un
.env.example, usar config:cache, validar variables obligatorias y encriptar el .env en producción, puedes elevar el nivel de profesionalismo y robustez de tus proyectos.