0Pricing
PHP Academy · Lección

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.io

Integració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 default

config() 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:clear

PHP 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

  1. Configuración de Nginx y PHP-FPM
  2. Variables de entorno y archivos .env
  3. Despliegue con GitHub Actions
  4. Contenerización de una aplicación PHP
← Volver a PHP Academy