Przewodnik

Produkcja i wdrożenie

Przygotuj wartości środowiskowe, pozwól Lemonade korzystać z produkcyjnego config cache i wdrażaj tylko artefakty rzeczywiście potrzebne przez runtime.

Tryb produkcyjny zaczyna się od środowiska

Zachowanie produkcyjne zależy przede wszystkim od APP_ENV, APP_DEBUG oraz wartości aplikacji takich jak APP_BASE_URL. development i testing ładują konfigurację bezpośrednio ze źródeł. production, prod i inne środowiska nie-deweloperskie działają jak runtime produkcyjny i mogą używać skompilowanego config cache.

example.php
APP_ENV=production
APP_DEBUG=0
APP_BASE_URL=https://example.com

Jak działa skompilowany config cache

Pliki YAML i rozwiązane wartości środowiskowe pozostają źródłem prawdy. W trybie produkcyjnym ConfigLoader najpierw próbuje ApplicationConfigCache::loadIfFresh(). Jeśli cache nie istnieje, jest nieaktualny albo zmieniło się śledzone źródło, framework ponownie ładuje konfigurację i automatycznie zapisuje świeży cache. Osobne polecenia config:cache i config:clear nie są obecnie potrzebne.

example.php
production HTTP request or CLI command
-> ConfigLoader::loadApplication(...)
-> ApplicationConfigCache::loadIfFresh(...)
-> on cache miss: load source config and write a fresh compiled cache

Zapisywalne katalogi runtime

Wdrożona aplikacja potrzebuje prawa zapisu w storage/ dla skompilowanego config cache, logów, sesji i uploadów, jeśli te funkcje są włączone. Pliki generowane trzymaj w storage/, nie commituj ich i nie traktuj jako źródła prawdy.

example.php
storage/cache/framework/config/
storage/logs/
storage/sessions/
storage/uploads/

Praktyczna lista wdrożeniowa Lemonade

  • Przed wdrożeniem: przygotuj wartości środowiskowe i secrets, wdroż konfigurację YAML i zbuduj zoptymalizowany autoloader Composera.
  • Podczas wdrożenia: opublikuj kod i sprawdź zapisywalne katalogi w storage/.
  • Po wdrożeniu: pozwól pierwszemu produkcyjnemu requestowi HTTP lub poleceniu CLI utworzyć config cache, sprawdź logowanie i uruchamiaj workery vendor/bin/lemonade lub zadania cykliczne tylko wtedy, gdy aplikacja rzeczywiście ich używa.
  • Szczegóły storage runtime znajdziesz w Infrastrukturze, a diagnostykę w sekcji Błędy i debugowanie.
example.php
composer install --no-dev --optimize-autoloader
vendor/bin/lemonade about

# Optional when the app uses queue workers
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database