Computadora portátil negra encendida que muestra una pantalla azul

Laravel: uso de archivos .env alternativos según el host HTTP

A veces, es necesario utilizar distintas configuraciones de entorno según el host. Aquí se ofrece una solución sencilla para lograrlo en Laravel.

Implementación

Añade el siguiente código a tu bootstrap/aplicación.php archivo, antes de la declaración de retorno:


$envFile = '.env';
if (isset($_SERVER['HTTP_HOST']) && str_contains($_SERVER['HTTP_HOST'], 'alternativehost.test')) {
$envFile = '.env.althost';
}

¿Quieres que funcione también con php Artisan en directorios con enlaces simbólicos?


if (isset($_SERVER['PWD']) && str_contains($_SERVER['PWD'], '/alternativehost')) {
$envFile = '.env.althost';
}

Esto puede ser peligroso. Consulta las advertencias a continuación.

Cómo funciona

El código comprueba dos condiciones:

  1. Primero, verifica si el host HTTP contiene el dominio especificado (método más seguro)
  2. En segundo lugar, verifica la ruta del directorio de trabajo (un enfoque más riesgoso, pero útil para operaciones CLI).

⚠️ Notas importantes

  • La segunda condición que se utiliza Personas con discapacidad Es más riesgoso ya que depende de la estructura del directorio y podría necesitar medidas de seguridad adicionales.
  • Asegúrese siempre de que sus archivos .env alternativos estén incluidos en su .gitignore
  • Recuerde borrar el caché de configuración después de realizar cambios:
    configuración php artisan:clear

Mejores prácticas

  • Mantenga sus archivos .env seguros y nunca los envíe al control de versiones
  • Utilice nombres descriptivos para sus archivos .env alternativos
  • Documente las diferencias ambientales para su equipo
  • Considere utilizar la detección de entorno incorporada de Laravel cuando sea posible

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESEspañol
Ir arriba