Variables de entorno y archivos .env
Gestione configuraciones sensibles con archivos .env y bibliotecas dotenv en PHP.
Variables de entorno y archivos .env es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Por qué utilizar variables de entorno?
Incluir credenciales o configuraciones específicas del entorno directamente en el código fuente es inseguro y vuelve frágiles las implementaciones. Las variables de entorno separan la configuración del código.
El archivo .env
Un archivo .env contiene pares clave-valor que se cargan en el entorno durante el arranque. Añádalo a .gitignore: NUNCA lo confirme en el control de versiones.
# .env
APP_ENV=production
APP_KEY=base64:...
DB_HOST=127.0.0.1
DB_NAME=myapp
DB_USER=myapp_user
DB_PASS=supersecret
REDIS_HOST=127.0.0.1
MAIL_HOST=smtp.mailtrap.ioIntegración de .env en Laravel
Laravel utiliza vlucas/phpdotenv para cargar .env automáticamente. Acceda a los valores con el helper env().
<?php
$host = env("DB_HOST", "127.0.0.1"); // "127.0.0.1" is the defaultconfig() frente a env()
Utilice env() únicamente en archivos config/*.php. En cualquier otro lugar, utilice config("database.host"); esto funciona correctamente con la caché de configuración.
<?php
// In config/database.php:
"host" => env("DB_HOST", "127.0.0.1")
// In your service classes:
$host = config("database.connections.mysql.host");Almacenamiento en caché de la configuración
Almacene en caché la configuración en producción para evitar analizar .env en cada solicitud.
$ php artisan config:cache
# After changing .env:
$ php artisan config:clearPHP puro con phpdotenv
Utilice vlucas/phpdotenv fuera de Laravel.
$ composer require vlucas/phpdotenv
<?php
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$host = $_ENV["DB_HOST"];Variables obligatorias
Exija las variables de entorno obligatorias durante el arranque para detectar pronto la falta de configuración.
<?php
$dotenv->required(["DB_HOST", "DB_NAME", "DB_USER", "DB_PASS"]);
$dotenv->required(["DB_PORT"])->isInteger();Archivo .env.example
Confirme un archivo .env.example con todos los nombres de variables, pero sin valores. Los desarrolladores lo copian a .env y completan sus propios valores.
Variables de entorno a nivel del servidor
En producción, establezca las variables de entorno a nivel del servidor (archivos de servicio de systemd, opciones --env de Docker, secretos de Kubernetes) en lugar de utilizar un archivo .env.
# systemd service:
[Service]
Environment="APP_ENV=production"
Environment="DB_HOST=db.internal"Gestión de secretos
Para credenciales confidenciales (claves de API, certificados), considere utilizar un gestor de secretos: HashiCorp Vault, AWS Secrets Manager o los secretos de GitHub Actions para CI.
Resumen
Almacene toda la configuración específica del entorno en .env. Nunca confirme este archivo. Utilice config() en el código de la aplicación y env() únicamente en los archivos de configuración. Almacene la configuración en caché en producción con php artisan config:cache.
Comprobación rápida
¿Dónde debería llamar a env() en una aplicación Laravel?
Preguntas frecuentes
¿La lección «Variables de entorno y archivos .env» es gratis?
Sí — el texto completo de «Variables de entorno y archivos .env» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Variables de entorno y archivos .env»?
Gestione configuraciones sensibles con archivos .env y bibliotecas dotenv en PHP. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Variables de entorno y archivos .env»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Configuración de Nginx y PHP-FPM
- Variables de entorno y archivos .env
- Despliegue con GitHub Actions
- Contenerización de una aplicación PHP