Laravel Sail, un ambiente di sviluppo per Laravel che utilizza Docker, si basa fortemente sulle variabili di ambiente definite principalmente nel file `.env` alla radice del progetto. Queste variabili di ambiente configurano l'applicazione e i suoi servizi, consentendo un'orchestrazione senza interruzioni di contenitori e la messa a punto delle impostazioni adatte allo sviluppo locale.
Le variabili di ambiente comuni utilizzate in Laravel Sail possono essere raggruppate in base al loro scopo: configurazione dell'applicazione, configurazione del database, porte di servizio e assistenti, impostazioni dell'utente del contenitore e personalizzazioni specifiche per la vela.
Variabili di configurazione dell'applicazione ###
- `app_name`: definisce il nome dell'applicazione Laravel.
- `app_env`: imposta il tipo di ambiente, comunemente` locale` per la vela.
- `app_key`: un tasto di crittografia codificato Base64 utilizzato da Laravel per la crittografia e la sicurezza della sessione.
- `app_debug`: una bandiera booleana per abilitare messaggi di errore dettagliati e funzionalità di debug (` true` o `false`).
- `app_url`: l'URL in cui l'applicazione è accessibile a livello locale, spesso impostato su` http: // localhost`.
Variabili di connessione del database ###
Per orchestrare il contenitore del database (servizio Mysql`), Sail utilizza variabili che definiscono la connessione al contenitore del database MySQL:
- `db_connection`: indica il driver del database, in genere` mysql`.
- `db_host`: nome host per il server di database, di solito il nome del contenitore MySQL, come` Mysql`.
- `db_port`: porta predefinita per la connettività mysql, di solito` 3306`.
- `db_database`: il nome del database utilizzato all'interno del contenitore.
- `db_username`: nome utente per accedere al database.
- `db_password`: password per l'utente del database.
Redis
La navigazione è facoltativamente Redis per la memorizzazione nella cache o la gestione delle sessioni. Queste variabili configurano la connettività Redis:
- `Redis_host`: nome host per il server Redis, spesso` Redis` per abbinare il contenitore Redis.
- `Redis_Password`: Password per Redis, se presente.
- `Redis_port`: Port Redis ascolta, spesso` 6379`.
Variabili di inoltro della porta di servizio
Per evitare conflitti con servizi già in esecuzione su porte comuni sul sistema host, Sail consente la personalizzazione delle porte inoltrate per i suoi servizi:
- `Forward_db_port`: porta della macchina locale inoltrata alla porta standard di MySQL 3306 nel contenitore (ad esempio, è possibile impostarlo se la porta 3306 è occupata).
- `Forward_redis_port`: porta locale inoltrata alla porta predefinita di Redis 6379.
- `Forward_Mailhog_port`: porta locale inoltrata alla porta di servizio MailHog, in genere utilizzata per i test e -mail.
- Altre variabili `Forward_*` esistono per servizi come PhpMyAdmin o altri servizi a vela se configurati.
Variabili utente e autorizzazioni container
Sail esegue contenitori utilizzando un utente che corrisponde all'utente host locale per garantire che le autorizzazioni di file rimangano coerenti tra l'host e il contenitore. Queste variabili controllano gli ID utente:
- `wwwuser`: imposta l'ID utente all'interno del contenitore che corrisponde all'ID utente della macchina host, garantendo che le autorizzazioni dei file corrispondano.
- `wwwgroup`: imposta l'ID del gruppo all'interno del contenitore in modo che corrisponda all'host.
variabili di personalizzazione a vela
- `app_service`: consente di modificare il nome del contenitore del servizio di applicazione di Laravel primario all'interno di` Docker-compose.yml`. Questo può essere utile per configurazioni avanzate.
- `Sail_Files`: consente di specificare ulteriori file di sovraccarico Docker Componie da caricare insieme ai file di vela standard. Questo è per personalizzare o estendere l'ambiente a vela.
- `Supervisor_Php_Command`: usato per personalizzare il comando di avvio PHP all'interno del contenitore principale di Laravel Sail, utile quando si integrano strumenti come Laravel Octane.
- `Supervisor_Php_User`: imposta l'utente che esegue PHP nel processo del supervisore all'interno del contenitore.
Laravel Sail viene fornito con un container di Mailhog per l'acquisizione di e -mail inviate durante lo sviluppo. Queste variabili configurano le impostazioni della posta:
- `Mail_mailer`: Imposta su` Smtp` o un altro driver Mailer.
- `Mail_host`: nome host per il server di posta, di solito` Mailhog`.
- `Mail_port`: porta per SMTP, comunemente` 1025` per MailHog.
- `Mail_username` e` mail_password`: credenziali se necessario (comunemente lasciati vuoti nello sviluppo).
driver coda e cache
L'impostazione predefinita di Sail `.env` può impostare questi:
- `queue_connection`: definisce il driver di coda, come` sync`, `database` o` redis`.
- `cache_driver`: determina il driver della cache, spesso` file` o `redis`.
altre variabili di ambiente di servizio
- `XDEBUG_CONFIG`: configurato automaticamente per navigare per il debug con XDEBUG, impostando spesso` client_host = host.docker.internal` per Mac e Windows.
- `puid` e` pgid`: occasionalmente visualizzati nelle configurazioni a vela personalizzate per impostare esplicitamente ID utente e di gruppo per la corrispondenza dell'utente.
Riepilogo dei ruoli variabili di ambiente nella vela
Queste variabili di ambiente, per lo più definite nel file `.env`, servono a:
- Configurare le basi dell'applicazione Laravel (nome, ambiente, modalità di debug, URL).
- Collegare il contenitore dell'applicazione Laravel al suo database e ai servizi di cache all'interno di Docker.
- Mappare le porte dal contenitore alla macchina host, evitando conflitti di porte locali.
- Garantire le autorizzazioni adeguate e di gruppo tra sistemi host e contenitori.
- Personalizza i contenitori e i processi dell'ambiente a vela Laravel per un utilizzo avanzato.
Le variabili di ambiente di file `.env` controllano direttamente il comportamento dei contenitori definiti in` docker- compose.yml` di Sail e eventuali file di compose estesi indicati da `sail_files`. La regolazione di queste variabili e il riavvio della vela (usando comandi come `./vendor/bin/sail down` e` ./vendor/bin/sail up-d`) applica le modifiche alla configurazione.
Questa configurazione consente a Laravel Sail di fornire un ambiente di sviluppo locale isolato, ma configurabile, utilizzando Docker, rispecchiando il comportamento di produzione ovunque pratico mantenendo la comodità e la flessibilità degli sviluppatori.