До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Код

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

Время чтения статьи ~3 минуты 14
Как развернуть приложение 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

Затем добавьте heroku-postbuild в package.json в секцию scripts:

"scripts": {
  "heroku-postbuild": "npm run production"
}

Шаг 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 main

Шаг 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
14
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября