computer portatile nero acceso che visualizza schermata blu

Laravel: utilizzo di file .env alternativi basati sull'host HTTP

A volte hai bisogno di usare diverse configurazioni di ambiente in base al tuo host. Ecco una semplice soluzione per ottenere questo risultato in Laravel.

Implementazione

Aggiungi il seguente codice al tuo bootstrap/app.php file, prima dell'istruzione return:


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

Vuoi farlo funzionare anche con php artisan nelle directory con collegamento simbolico?


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

Questo è probabilmente pericoloso. Controlla le avvertenze qui sotto.

Come funziona

Il codice verifica due condizioni:

  1. Innanzitutto, controlla se l'host HTTP contiene il dominio specificato (approccio più sicuro)
  2. In secondo luogo, controlla il percorso della directory di lavoro (approccio più rischioso, ma utile per le operazioni CLI)

⚠️ Note importanti

  • La seconda condizione utilizzando Disabilità da lavoro è più rischioso perché si basa sulla struttura delle directory e potrebbe richiedere misure di sicurezza aggiuntive
  • Assicurati sempre che i tuoi file .env alternativi siano inclusi nel tuo .gitignorare
  • Ricordarsi di cancellare la cache di configurazione dopo aver apportato modifiche:
    php artisan config:clear

Buone pratiche

  • Mantieni al sicuro i tuoi file .env e non sottoporli mai al controllo di versione
  • Utilizza nomi descrittivi per i tuoi file .env alternativi
  • Documenta le differenze ambientali per il tuo team
  • Quando possibile, prendi in considerazione l'utilizzo del rilevamento dell'ambiente integrato di Laravel

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItaliano
Scorri verso l'alto