Laravel Sail, en utvecklingsmiljö för Laravel som använder Docker, förlitar sig starkt på miljövariabler som definieras främst i filen ".env" vid projektets rot. Dessa miljövariabler konfigurerar applikationen och dess tjänster, vilket möjliggör sömlös orkestrering av containrar och inställning av inställningar som är lämpliga för lokal utveckling.
De gemensamma miljövariablerna som används i Laravel Sail kan grupperas enligt deras syfte: applikationskonfiguration, databaskonfiguration, serviceportar och bindningar, inställningar för användar av container och segelspecifika anpassningar.
Applikationskonfigurationsvariabler
- `App_Name`: Definierar namnet på Laravel -applikationen.
- `App_env`: Ställer in miljötypen, vanligtvis` lokal 'för segel.
- `APP_KEY`: En bas64-kodad krypteringsnyckel som används av Laravel för kryptering och sessionssäkerhet.
- `APP_DEBUG`: En boolesk flagga för att aktivera detaljerade felmeddelanden och felsökningsfunktioner (` true 'eller' falsk ').
- `APP_URL`: URL: n där applikationen är tillgänglig lokalt, ofta inställd på` http: // localhost`.
Databasanslutningsvariabler
För att orkestrera databasbehållaren (`MySQL` -tjänsten) använder SAIL variabler som definierar anslutningen till MySQL -databasbehållaren:
- `db_connection`: indikerar databasdrivrutinen, vanligtvis` mysql`.
- `db_host`: värdnamn för databaseservern, vanligtvis namnet på MySQL -behållaren, till exempel` MySQL`.
- `DB_PORT`: Standardport för MySQL -anslutning, vanligtvis` 3306 '.
- `db_database`: Namnet på databasen som används i behållaren.
- `DB_USERNAME ': Användarnamn för att komma åt databasen.
- `DB_Password`: Lösenord för databasanvändaren.
Redis -konfiguration
Sail stöder valfritt Redis för caching eller sessionhantering. Dessa variabler Konfigurerar Redis -anslutning:
- `redis_host`: värdnamn för Redis -servern, ofta` redis 'för att matcha Redis -behållaren.
- `redis_password`: Lösenord för Redis, om något.
- `redis_port`: Port Redis lyssnar på, ofta` 6379 '.
Serviceportens vidarebefordringsvariabler
För att undvika konflikter med tjänster som redan körs på vanliga portar på värdsystemet tillåter SAIL anpassning av vidarebefordrade hamnar för sina tjänster:
- `Forward_DB_PORT`: Lokal maskinport vidarebefordrad till MySQL: s standardport 3306 i behållaren (t.ex. kan du ställa in detta om port 3306 är ockuperad).
- `Forward_redis_port`: Lokal port vidarebefordrad till Redis standardport 6379.
- `Forward_mailhog_port`: Lokal port vidarebefordrad till MailHog Service Port, vanligtvis används för e -posttest.
- Andra `fram_*` variabler finns för tjänster som PHPMyAdmin eller andra segeltjänster om de är konfigurerade.
Container Användare och behörighetsvariabler
Sail Runs Containers med en användare som matchar den lokala värdanvändaren för att säkerställa att filbehörigheter förblir konsekventa mellan värden och behållaren. Dessa variabler styr användar -ID: er:
- `wwwuser`: Ställer in användar -ID i behållaren som motsvarar värdmaskinens användar -ID, vilket säkerställer filbehörighetsmatch.
- `wwwgroup`: Ställer in grupp -ID i behållaren för att matcha värden.
segla anpassningsvariabler
- `App_Service ': Tillåter att ändra det primära Laravel-applikationstjänstens behållarnamn inuti` docker-compose.yml`. Detta kan vara användbart för avancerade konfigurationer.
- `Sail_Files`: Låter dig ange ytterligare Docker -komponeringsöverskridande filer som ska laddas tillsammans med standard segelfiler. Detta är för att anpassa eller utvidga segelmiljön.
- `Supervisor_PHP_COMMAND`: Används för att anpassa kommandot php -start i huvudet Laravel Sail -behållare, användbar när man integrerar verktyg som Laravel Octane.
- `Supervisor_PHP_USER`: Ställer in användaren som kör PHP i handledarprocessen i behållaren.
Mail Service Variabler
Laravel Sail kommer med en Mailhog -behållare för att fånga e -postmeddelanden som skickas under utvecklingen. Dessa variabler Konfigurerar e -postinställningar:
- `Mail_mailer`: Ställ in på` SMTP` eller en annan mailer -drivrutin.
- `Mail_Host`: HostName för Mail Server, vanligtvis` MailHog '.
- `mail_port`: port för SMTP, vanligtvis` 1025 'för Mailhog.
- `mail_username` och` mail_password`: referenser om det behövs (vanligtvis lämnat tom under utveckling).
Kön och cache -drivrutiner
SAIL: s standard `.env` kan ställa in dessa:
- `Queue_Connection ': Definierar ködrivrutinen, som` Sync`, `databas' eller 'Redis'.
- `Cache_Driver`: Bestämmer cache -drivrutinen, ofta` file 'eller `redis'.
Andra servicemiljövariabler
- `xdebug_config`: konfigurerad automatiskt med segel för felsökning med xdebug, ofta ställer in` client_host = host.docker.internal` för Mac och Windows.
- `puid` och` pgid`: ibland sett i anpassade segelkonfigurationer för att uttryckligen ställa in användar- och grupp-ID för matchning av användare.
Sammanfattning av miljövariabla roller i segel
Dessa miljövariabler, mestadels definierade i filen ".env", tjänar till:
- Konfigurera grunderna i Laravel Application (namn, miljö, felsökningsläge, URL).
- Anslut Laravel -applikationsbehållaren till dess databas- och cachetjänster i Docker.
- Kartportar från container till värdmaskinen och undviker lokala hamnkonflikter.
- Se till att korrekt användare och gruppbehörigheter mellan värd- och containersystem.
- Anpassa Laravel segelmiljöbehållare och processer för avancerad användning.
Filmiljövariablerna ".ENV" styr direkt beteendet hos containrar som definieras i SAIL: s "Docker-Compose.yml" och alla utökade kompositionsfiler som indikeras av "Sail_files". Justera dessa variabler och starta om segel (med kommandon som `./vendor/bin/sail down` och` ./vendor/bin/sail up -d`) tillämpar konfigurationsändringarna.
Denna installation gör det möjligt för Laravel Sail att tillhandahålla en isolerad, men ändå konfigurerbar, lokal utvecklingsmiljö med användning av Docker, spegla produktionsbeteende där det är praktiskt samtidigt som utvecklarens bekvämlighet och flexibilitet håller utvecklaren.