Продолжаем разбирать деплой приложения на фреймворке laravel используя aws beanstalk. В предыдущей статье мы разобрали, как можно выгрузить код в сервис, сейчас же разберем как подключить базу данных, научимся изменять переменные окружения.
Поскольку мы используем aws для деплоя, то и думаю будет логичным использовать сервис баз данных который предоставляет aws — RDS.
В консоли управления aws открываем меню сервисов(Services) и выбираем RDS:

Нажимаем на оранжевую кнопку Create Database и переходим к следующему шагу.
Делаем все как на скриншоте:

Тип — Mysql
Инстанс — Free tier, нам не нужно платить больше. Ниже вводим значения на ваше усмотрение, нажимаем на кнопку Create Database и ожидаем пока aws подготовит вам инстанс.
После того, как инстанс будет готов, нам нужно установить переменные окружения. Существует 2 способа, используя веб интерфейс управления окружением beanstalk или через консольную утилиту. Мы будем использовать второй вариант.
Откроем терминал и перейдем в папку с нашим проектом из предыдущей статьи. Для установки переменных окружения используем команду eb setenv key=value
.
Для настройки подключения к базе используем набор команд:
eb setenv DB_HOST=some-database.cctmxmnvnvan.us-east-2.rds.amazonaws.com eb setenv DB_DATABASE=some-database eb setenv DB_USERNAME=admin eb setenv DB_PASSWORD=<Ваш мастер пароль>
Эти переменные нужно удалить из файла .env
После этого вам нужно подключится к базе данных используя любой клиент (Navicat, Workbench, HeidiSQL) и создать базу данных.
После создания базы данных нам нужно запустить миграции, но поскольку мы используем предустановленое окружение с веб сервером и php, то запускать миграции при деплое мы не можем, так как aws накладывает ограничения на уже сконфигурированые окружения. Воспользуемся ssh и запустим миграции вручную.
eb ssh --setup
— выполняем эту команду и следуем инструкциям. После настройки доступа вы сможете подключаться к окружению и выполнять на нем команды как на самом обычном сервере.
Когда настройка завершилась, просто подключаемся к серверу и выполняем команду cd /var/app/current && php artisan migrate
.
Если миграция прошла успешно, значит вы все правильно настроили и с базой данных мы закончили.
Для проверки выполним 2 команды в папке с приложением на вашем компьютере:
composer require laravel/ui php artisan ui bootstrap --auth
И последнее что нам нужно сделать, это правильно обрабатывать роутинг лары. В нашем проекте создадим папки .platform/nginx/conf.d/elasticbeanstalk
, внутри создадим файл laravel.conf
со следующим содержимым:
location / { try_files $uri $uri/ /index.php?$query_string; }
Запускаем деплой нашего приложения eb deploy
и после завершения деплоя пробуем зарегистрироваться на сайте.
Если у вас возникли проблемы или что-то не получается, пишите комментарии, будем разбираться.