1. Home
  2.  
  3. Blog
  4.  
  5. Web developer
  6.  
  7. Symfony: come usare environment variables in sicurezza (env, .env.local)

Symfony: come usare environment variables in sicurezza (env, .env.local)

Symfony: come usare environment variables
Getting your Trinity Audio player ready...


Uno dei punti di forza di Symfony è la sua gestione moderna delle variabili di ambiente, fondamentali per separare la configurazione dal codice sorgente.

Ma tanti sviluppatori, soprattutto alle prime armi, usano male .env, .env.local o non sanno come tenere API key, credenziali e configurazioni sensibili al sicuro.

Ecco una guida pratica per capire cosa fare e cosa evitare.


Cosa sono le variabili di ambiente in Symfony

Le variabili di ambiente (env) sono valori dinamici che dicono all’app come comportarsi in ambienti diversi:

  • DATABASE_URL
  • MAILER_DSN
  • APP_SECRET
  • Chiavi API esterne

Così puoi avere:

  • Ambiente dev locale con credenziali di test
  • Ambiente prod online con dati reali
  • Senza modificare una riga di codice sorgente

📂 Dove vive la configurazione env

Symfony gestisce le variabili con:

  1. File .env
    • Versionato su Git. Contiene i valori di default.
  2. File .env.local
    • Non deve essere versionato.
    • Sovrascrive i valori di .env solo sulla tua macchina o server.
    • Perfetto per configurazioni sensibili o diverse per sviluppatore.
  3. Vero ambiente server
    • Su server prod, puoi (e devi) usare variabili di ambiente reali impostate via .bashrc, panel Plesk, cPanel o CI/CD pipeline.

🧩 Come funziona l’override

Symfony carica i file in ordine:

  1. .env
  2. .env.local (se esiste)
  3. Variabili reali da ambiente server (export VAR=value)

Quindi la variabile DATABASE_URL in .env.local sovrascrive quella in .env.


🔐 Best practice per la sicurezza

1. Non versionare .env.local

Aggiungilo a .gitignore. Eviti di committare credenziali DB, API key o segreti di produzione.


2. Usa variabili reali in produzione

Esempio:

 

export DATABASE_URL="mysql://user:password@127.0.0.1:3306/dbname" export APP_ENV=prod export APP_SECRET=xxxxxxx

Non affidarti a file .env sul server live: se sbagli i permessi, potresti esporre tutto via web.


3. Controlla i permessi dei file

I file .env e .env.local devono avere permessi sicuri (644 o più restrittivi) e proprietà corretta (utente www-data su server Apache/Nginx).


4. Valida le variabili

Symfony ti aiuta con i parametri:

 

# config/services.yaml parameters: env(DATABASE_URL): ''

Così se una variabile manca, ricevi un errore chiaro.


🗂️ Come leggere le variabili

Symfony usa il componente Dotenv:

 

$databaseUrl = $_ENV['DATABASE_URL'];

Oppure con:

 

getenv('DATABASE_URL');

🗝️ .env.local.example: bonus tip

Per team grandi:

  • Crea un .env.local.example senza valori sensibili ma con le chiavi.
  • Serve da modello per chi clona il repo.

🧠 Errore comune: caricare .env via web

Evita di lasciare i file .env accessibili da browser:

  • Controlla .htaccess o regole nginx.
  • Posiziona il progetto in cartelle sicure (public/ come root web).

🔚 Conclusione

Le variabili di ambiente sono fondamentali per mantenere Symfony flessibile, sicuro e pronto per ambienti diversi.
Segui poche regole:
✔️ .env versionato solo per default
✔️ .env.local ignorato da Git
✔️ Variabili reali sul server live
✔️ Niente segreti in chiaro in repo pubblici


🛟 Serve aiuto per configurare Symfony in produzione?

Contattami: posso aiutarti a configurare deploy, pipeline CI/CD, variabili ambiente e permessi server in modo professionale.

Se ti è piaciuto questo articolo riguardo Symfony: come usare environment variables in sicurezza (env, .env.local) condividilo sui social:
Dal 2010 supportiamo le aziende nella pianificazione e nello sviluppo di strategie mirate per una presenza efficace e professionale sul web e sui social media. Ecco tutto quello che possiamo fare per la tua attività.

Articoli correlati