Laravel Sail, et utviklingsmiljø for Laravel som bruker Docker, er avhengig av miljøvariabler definert først og fremst i `.Env` -filen i roten til prosjektet. Disse miljøvariablene konfigurerer applikasjonen og dens tjenester, og muliggjør sømløs orkestrering av containere og innstilling av innstillinger som er egnet for lokal utvikling.
De vanlige miljøvariablene som brukes i Laravel Sail kan grupperes i henhold til deres formål: Applikasjonskonfigurasjon, databasekonfigurasjon, serviceporter og bindinger, containerbrukerinnstillinger og seilspesifikke tilpasninger.
applikasjonskonfigurasjonsvariabler
- `App_name`: Definerer navnet på Laravel -applikasjonen.
- `app_env`: Angir miljøtypen, ofte` lokal` for seil.
- `APP_Key`: En base64-kodet krypteringsnøkkel brukt av Laravel for kryptering og sesjonssikkerhet.
- `APP_DEBUG`: Et boolsk flagg for å aktivere detaljerte feilmeldinger og feilsøkingsfunksjoner (` true` eller `falsk`).
- `APP_URL`: URL -en der applikasjonen er tilgjengelig lokalt, ofte satt til` http: // localhost`.
Databaseforbindelsesvariabler
For å orkestrere databasebeholderen (`MySQL` -tjenesten) bruker seil variabler som definerer tilkoblingen til MySQL -databasebeholderen:
- `db_connection`: Angir databasedriveren, typisk` mysql`.
- `db_host`: hostname for databaseserveren, vanligvis navnet på mysql -beholderen, for eksempel` mysql`.
- `DB_PORT`: Standardport for MySQL -tilkobling, vanligvis` 3306`.
- `db_database`: Navnet på databasen som brukes inne i beholderen.
- `DB_USERNAME`: Brukernavn for å få tilgang til databasen.
- `DB_Password`: Passord for databasebrukeren.
Redis -konfigurasjon
Seil støtter eventuelt Redis for hurtigbufring eller økthåndtering. Disse variablene konfigurerer Redis -tilkobling:
- `Redis_host`: Hostname for Redis -serveren, ofte` Redis` for å matche Redis -beholderen.
- `Redis_Password`: Passord for Redis, om noen.
- `Redis_port`: Port Redis lytter på, ofte` 6379`.
Service Port Videresendingsvariabler
For å unngå konflikter med tjenester som allerede kjører på vanlige porter på vertssystemet, tillater Sail tilpasning av videresendte porter for sine tjenester:
- `Forward_db_port`: Lokal maskinport videresendt til MySQLs standardport 3306 i beholderen (f.eks. Du kan angi dette hvis port 3306 er okkupert).
- `Forward_Redis_port`: Lokal port videresendt til Redis standardport 6379.
- `Forward_mailhog_port`: Lokal port videresendt til Mailhog Service Port, vanligvis brukt til e -posttesting.
- Andre `forward_*` variabler eksisterer for tjenester som phpmyadmin eller andre seiltjenester hvis de er konfigurert.
Container -bruker- og tillatelsesvariabler
Sail kjører containere som bruker en bruker som samsvarer med den lokale vertsbrukeren for å sikre at filtillatelser forblir konsistente mellom verten og beholderen. Disse variablene kontrollerer bruker -ID -ene:
- `wwwuser`: Angir bruker -ID inne i beholderen som tilsvarer vertsmaskinens bruker -ID, og sikrer at filtillatelser samsvarer.
- `wwwgroup`: Angir gruppe -ID inne i beholderen for å matche verten.
Seil -tilpasningsvariabler
- `APP_Service`: Tillater å endre det primære LARAVEL-applikasjonstjenestenavnet på` docker-compose.yml`. Dette kan være nyttig for avanserte konfigurasjoner.
- `seil_files`: lar deg spesifisere flere Docker -komponere overstyringsfiler som skal lastes sammen med standardseilfilene. Dette er for å tilpasse eller utvide seilmiljøet.
- `Supervisor_php_command`: Brukes til å tilpasse PHP Startup -kommandoen inne i hovedkontaineren for Laravel Sail, nyttig når du integrerer verktøy som Laravel Octane.
- `Supervisor_php_user`: Angir brukeren som kjører PHP i veilederprosessen inne i beholderen.
Mail Service Variables
Laravel Sail kommer med en mailhog -container for å fange e -postmeldinger sendt under utviklingen. Disse variablene konfigurerer e -postinnstillinger:
- `mail_mailer`: Sett til` smtp` eller en annen mailersjåfør.
- `mail_host`: hostname for e -postserveren, vanligvis` mailhog`.
- `mail_port`: port for smtp, ofte` 1025` for mailhog.
- `mail_usname` og` mail_password`: legitimasjon om nødvendig (ofte igjen tom i utvikling).
Kø og cache -drivere
Sails standard `.Env` kan angi disse:
- `QUEE_CONNECTION`: Definerer kødriveren, som` Sync`, `Database` eller 'Redis`.
- `cache_driver`: Bestemmer hurtigbufferen, ofte` fil` eller `redis`.
andre tjenestemiljøvariabler
- `XDebug_Config`: Konfigurert automatisk av Sail for feilsøking med XDebug, og setter ofte` client_host = host.docker.internal` for Mac og Windows.
- `puid` og` pgid`: tidvis sett i tilpassede seilkonfigurasjoner for eksplisitt å angi bruker- og gruppe-ID-er for matching av brukerutstyr.
Sammendrag av miljøvariable roller i seil
Disse miljøvariablene, for det meste definert i `.env` -filen, tjener til:
- Konfigurer grunnleggende Laravel -applikasjonen (navn, miljø, feilsøkingsmodus, URL).
- Koble Laravel Application Container til sin database og cache -tjenester inne i Docker.
- Kartlegg porter fra container til vertsmaskinen, unngå lokale portkonflikter.
- Sørg for riktig bruker- og gruppetillatelser mellom verts- og containersystemer.
- Tilpass Laravel -seilmiljøbeholderne og prosesser for avansert bruk.
Filmiljøvariablene `. Env` kontrollerer direkte oppførselen til containere definert i Sails` docker-compose.yml` og eventuelle utvidede komponeringsfiler angitt med `seil_files`. Justere disse variablene og omstartseil (ved hjelp av kommandoer som `./Vendor/bin/Sail Down` og` ./Vendor/bin/Sail Up -D`) bruker konfigurasjonsendringene.
Dette oppsettet gjør at Laravel Sail kan gi et isolert, men likevel konfigurerbart, lokalt utviklingsmiljø ved hjelp av Docker, speiler produksjonsatferd der det er praktisk samtidig som du opprettholder utvikleren og fleksibiliteten.