Все статьи | Разработка

Как развернуть приложение Laravel на Heroku

Как развернуть приложение Laravel на Heroku главное изображение

Из этой статьи вы узнаете, как задеплоить проект Laravel на Heroku — облачной платформе для развёртывания, управления и масштабирования проектов.

Что понадобится для работы

  • Знания PHP и Laravel
  • Аккаунт на Heroku
  • Heroku CLI (можно загрузить здесь)
  • Git (инструкция по установке здесь)

Предполагается, что у вас есть приложение на Laravel, которое работает на локальном сервере и готово к развёртыванию.

Шаг 1: инициализируйте Git

Инициализируйте git-репозиторий в текущей рабочей директории. Используйте такую команду:

$ git init

Внимание: если вы не умеете работать с Git, пройдите бесплатный курс по системам контроля версий.

Шаг 2: создайте Procfile

В рабочей директории создайте Procfile без расширения и добавьте в него такую строку:

web: vendor/bin/heroku-php-apache2 public/

Также Procfile можно создать и обновлять через терминал. Для этого понадобится следующая команда:

$ echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile

Шаг 3: создайте новое приложение на Heroku

Это можно сделать с помощью команды:

$ heroku create

В этом случае для вашего проекта устанавливается рандомное название. Чтобы его изменить, используйте следующую команду:

$ heroku apps:rename newAppName

Вместо newAppName укажите желаемое название проекта.

Шаг 4: подключите Node.js

Node.js понадобится для работы с командами npm install, npm production и так далее. Добавьте в проект пакет heroku/nodejs с помощью команды:

$ heroku buildpacks:add heroku/nodejs

После этого все зависимости, указанные в package.json, будут установлены при развёртывании проекта, а devDependencies будут проигнорированы.

Чтобы устанавливать все зависимости, включая dev, используйте такую команду:

$ heroku config:set NPM_CONFIG_PRODUCTION=false

Затем добавьте postinstall в package.json:

"scripts": {
  "postinstall": "npm run prod"
}

Шаг 5: настройте ключ шифрования Laravel

Чтобы настроить ключ шифрования, скопируйте значение APP_KEY из файла .env и выполните указанную ниже команду:

$ heroku config:set APP_KEY="Your app key"

А с помощью предложенной далее команды можно сгенерировать и установить новый ключ шифрования.

$ heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)

Шаг 6: отправьте приложение на Heroku

Запушить приложение на Heroku можно с помощью такой команды:

$ git push heroku master

Шаг 7: убедитесь, что приложение использует правильные пакеты сборки

Для этого используйте предложенную команду:

$ heroku buildpacks

Если в списке пакетов есть heroku/php и heroku/nodejs, всё в порядке. Если какого-то из пакетов нет, запустите такую команду:

$ heroku buildpacks:add ['missing build']

Вместо [‘missing build’] укажите название пакета, который нужно добавить.

Шаг 8: проверьте доступность приложения

Для этого введите в адресную строку браузера соответствующий URL.

Чтобы установить переменные окружения, воспользуйтесь командой:

$ heroku config:set VAR_NAME=VAR_VALUE

Также можно использовать панель инструментов. На вкладке Settings выберите Reveal config vars. Здесь можно просмотреть и настроить переменные окружения.

Heroku позволяет бесплатно использовать PostgreSQL. Для этого понадобится такая команда:

$ heroku addons:create heroku-postgresql:hobby-dev

На панели инструментов в настройках укажите для DB_CONNECTION значение pgsql. Выберите Reveal config vars, чтобы проверить переменные окружения.

Чтобы получить учётные данные БД приложения, выберите аддон Heroku Postgres Hobby Dev на вкладке Overview панели инструментов. После этого откроется новая вкладка в браузере. Учётные данные БД можно найти на вкладке «Настройки».

Обратите внимание, чтобы использовать команды artisan или npm на Heroku, перед всеми командами запускайте heroku run. Например, heroku run php artisan storage:link или heroku run npm install.

Адаптированный перевод статьи How to deploy a Laravel/Vue App to Heroku by Chinedu Ogama. Мнение администрации Хекслета может не совпадать с мнением автора оригинальной публикации.

Аватар пользователя Дмитрий Дементий
Дмитрий Дементий 01 апреля 2020

Бесплатные курсы на Хекслете

Учитесь в удобном для вас ритме