Laravel Sail, et udviklingsmiljø for Laravel ved hjælp af Docker, er stærkt afhængig af miljøvariabler, der primært er defineret i filen '.env' i roden af projektet. Disse miljøvariabler konfigurerer applikationen og dens tjenester, hvilket muliggør problemfri orkestrering af containere og indstilling af indstillinger, der er egnede til lokal udvikling.
De almindelige miljøvariabler, der bruges i Laravel SAIL, kan grupperes i henhold til deres formål: applikationskonfiguration, databasekonfiguration, serviceporte og bindinger, containerbrugerindstillinger og sejlspecifikke tilpasninger.
Applikationskonfigurationsvariabler
- `app_name`: Definerer navnet på Laravel -applikationen.
- `app_env ': Indstiller miljøtypen, ofte' lokal 'til sejl.
- `APP_KEY`: En base64-kodet krypteringsnøgle, der bruges af Laravel til kryptering og sessionssikkerhed.
- `App_debug ': Et boolsk flag for at aktivere detaljerede fejlmeddelelser og fejlfindingsfunktioner (` sand' eller 'falsk').
- `app_url`: URL'en, hvor applikationen er tilgængelig lokalt, ofte indstillet til` http: // localhost`.
Databaseforbindelsesvariabler
For at orkestrere databasebeholderen (`MySQL` -service) bruger Sail variabler, der definerer forbindelsen til MySQL -databasebeholderen:
- `db_connection`: angiver databasedriveren, typisk` mysql`.
- `db_host`: værtsnavn til databaseserveren, normalt navnet på MySQL -containeren, såsom` mysql`.
- `db_port`: Standardport til MySQL -forbindelse, normalt` 3306`.
- `db_database`: Navnet på den database, der bruges inde i containeren.
- `DB_USERNAME`: Brugernavn for at få adgang til databasen.
- `db_password`: adgangskode til databasebrugeren.
Redis -konfiguration
SAIL understøtter eventuelt Redis til cache eller sessionhåndtering. Disse variabler konfigurerer Redis -forbindelse:
- `REDIS_HOST ': HostName for Redis -serveren, ofte' Redis 'for at matche Redis -containeren.
- `Redis_Password`: Adgangskode til Redis, hvis nogen.
- `REDIS_PORT`: Port Redis lytter på, ofte` 6379`.
Service Port -videresendelsesvariabler
For at undgå konflikter med tjenester, der allerede kører på almindelige havne på værtssystemet, tillader SAIL tilpasning af videresendte porte til dens tjenester:
- `Forward_DB_Port`: Lokal maskinport videresendt til MySQLs standardport 3306 i containeren (f.eks. Kan du indstille dette, hvis Port 3306 er besat).
- `Forward_redis_port`: Lokal port videresendt til Redis Standard Port 6379.
- `Forward_mailhog_port`: Lokal port videresendt til Mailhog Service Port, der typisk bruges til e -mail -test.
- Andre `fremadrettede_*` variabler findes for tjenester som phpmyadmin eller andre sejletjenester, hvis de er konfigureret.
Containerbruger og tilladelsesvariabler
Sail kører containere ved hjælp af en bruger, der matcher den lokale værtsbruger for at sikre, at filtilladelser forbliver konsistente mellem værten og containeren. Disse variabler kontrollerer bruger -id'erne:
- `wwwuser`: Indstiller bruger -ID inde i containeren, der svarer til værtsmaskinens bruger -ID, hvilket sikrer filtilladelser matcher.
- `wwwgroup`: Indstiller gruppe -ID inde i containeren for at matche værten.
Sejltilpasningsvariabler
- `app_service`: Tillader at ændre den primære Laravel Application Service containernavn inde i` docker-compose.yml`. Dette kan være nyttigt til avancerede konfigurationer.
- `SAIL_FILES`: Gør det muligt at specificere yderligere Docker -komponere tilsidesættende filer, der skal indlæses ved siden af standardsejlfilerne. Dette er til tilpasning eller udvidelse af sejlmiljøet.
- `Supervisor_php_Command`: Bruges til at tilpasse PHP Startup -kommandoen inde i hovedkontoret Laravel Sail, nyttige, når du integrerer værktøjer som Laravel Octane.
- `Supervisor_php_user`: Indstiller den bruger, der kører PHP i vejlederprocessen inde i containeren.
Mail Service -variabler
Laravel Sail leveres med en Mailhog -container til optagelse af e -mails, der blev sendt under udvikling. Disse variabler konfigurerer mailindstillinger:
- `mail_mailer`: Indstil til` SMTP 'eller en anden mailer -driver.
- `mail_host`: værtsnavn til mailserveren, normalt 'mailhog'.
- `Mail_port`: Port til SMTP, ofte` 1025 'til MailHog.
- `mail_username` og` mail_password`: legitimationsoplysninger om nødvendigt (ofte efterladt tomt i udviklingen).
Kø og cache -drivere
Sejls standard `.env` kan indstille disse:
- `Queue_connection`: Definerer kødriveren, ligesom 'Sync', 'Database' eller 'Redis'.
- `cache_driver`: Bestemmer cache -driveren, ofte 'fil' eller 'redis'.
Andre servicemiljøvariabler
- `Xdebug_Config`: Konfigureret automatisk ved sejl til fejlsøgning med Xdebug, der ofte indstiller` client_host = host.docker.internal` til Mac og Windows.
- `puid` og` PGID`: lejlighedsvis set i brugerdefinerede sejlkonfigurationer til eksplicit at indstille bruger- og gruppe-id'er til brugerindgivelse matchning.
Resumé af miljøvariable roller i sejl
Disse miljøvariabler, for det meste defineret i filen '.env', tjener til:
- Konfigurer Basics Laravel Application (navn, miljø, debug -tilstand, URL).
- Tilslut Laravel -applikationsbeholderen til sin database og cache -tjenester inde i Docker.
- Kortporte fra container til værtsmaskinen og undgår lokale havnekonflikter.
- Sørg for korrekt bruger- og gruppetilladelser mellem værts- og containersystemer.
- Tilpas laravel sejlmiljøer og processer til avanceret brug.
'.Env`-filmiljøvariablerne kontrollerer direkte opførsel af containere, der er defineret i SAIL's' Docker-Compose.yml` og eventuelle udvidede komponeringsfiler angivet med 'SAIL_FILES'. Justering af disse variabler og genstart af sejl (ved hjælp af kommandoer som `./Vendor/Bin/Sail Down` og` ./Vendor/Bin/Sail UP -D`) anvender konfigurationsændringerne.
Denne opsætning giver Laravel Sail mulighed for at tilvejebringe et isoleret, men alligevel konfigurerbart, lokalt udviklingsmiljø ved hjælp af Docker, der spejler produktionsadfærd, uanset hvor det er praktisk, mens den opretholder udviklerens bekvemmelighed og fleksibilitet.