Skip to main content

Laravel в AWS Beanstalk. Подключение базы данных.

Продолжаем разбирать деплой приложения на фреймворке 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 и после завершения деплоя пробуем зарегистрироваться на сайте.

Если у вас возникли проблемы или что-то не получается, пишите комментарии, будем разбираться.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *