Руководство

Production и deployment

Подготовьте значения окружения, позвольте Lemonade использовать production config cache и разворачивайте только те артефакты, которые реально нужны runtime.

Production-режим начинается с окружения

Production-поведение в первую очередь задаётся APP_ENV, APP_DEBUG и значениями приложения, такими как APP_BASE_URL. development и testing загружают конфигурацию напрямую из источников. production, prod и другие не-development окружения работают как production runtime и могут использовать скомпилированный config cache.

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

Как работает скомпилированный config cache

YAML-файлы и разрешённые значения окружения остаются источником истины. В production-режиме ConfigLoader сначала вызывает ApplicationConfigCache::loadIfFresh(). Если cache отсутствует, устарел или изменился отслеживаемый источник, фреймворк повторно загружает конфигурацию и автоматически записывает свежий cache. Отдельные команды config:cache и config:clear сейчас не нужны.

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

Доступные для записи runtime-каталоги

Развёрнутому приложению нужен доступ на запись в storage/ для скомпилированного config cache, логов, session и upload, если эти функции включены. Генерируемые файлы храните в storage/, не добавляйте их в commit и не считайте источником истины.

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

Практический checklist deployment

  • Перед deployment: подготовьте значения окружения и secrets, разверните YAML-конфигурацию и создайте оптимизированный Composer autoload.
  • Во время deployment: опубликуйте код и проверьте каталоги с правом записи в storage/.
  • После deployment: позвольте первому production HTTP request или CLI command создать config cache, проверьте logging и запускайте vendor/bin/lemonade workers или scheduled commands только если приложение действительно их использует.
  • Подробнее о runtime storage — в Инфраструктуре, о диагностике — в разделе Ошибки и отладка.
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