DeployCode
Фреймворки

Laravel

Деплой приложения на Laravel.

Как Railpack собирает Laravel

Laravel распознаётся по файлу artisan. Railpack:

  1. Ставит PHP и зависимости из composer.json.
  2. Если есть package.json, собирает фронтенд (Vite) и удаляет dev-зависимости Node.js.
  3. Запускает приложение на FrankenPHP с корнем в public/.

При каждом запуске контейнера выполняются:

php artisan migrate --force
php artisan storage:link
php artisan optimize:clear
php artisan optimize

Миграции выполняются автоматически при каждом запуске. Чтобы отключить это, задайте RAILPACK_SKIP_MIGRATIONS=true.

Порт

FrankenPHP слушает переменную PORT, а без неё — 80. Порт домена по умолчанию — 3000, поэтому добавьте PORT=3000 или поменяйте порт в домене на 80.

Переменные окружения

Минимальный набор для production:

APP_KEY=base64:...        # php artisan key:generate --show
APP_ENV=production
APP_DEBUG=false
APP_URL=https://example.com
PORT=3000

Для подключения к PostgreSQL задайте DB_CONNECTION=pgsql и параметры базы.

Файлы и хранилище

Файловая система контейнера пересоздаётся при каждом деплое. Загрузки пользователей и другие файлы из storage/app храните в томе или во внешнем объектном хранилище.

Версия PHP

Берётся из composer.json; по умолчанию — 8.4. Поддерживаются версии от 8.2.

Полезные переменные Railpack

ПеременнаяЧто делает
RAILPACK_SKIP_MIGRATIONStrue — не выполнять миграции при запуске
RAILPACK_PHP_EXTENSIONSДополнительные расширения PHP через запятую
RAILPACK_PHP_ROOT_DIRДругой корень документов вместо public/

На этой странице