Найти в Дзене
Deployme

Развертывание PHP Symfony

Привет.

Сегодня мы посмотрим как развертывается сайт Деплойми - deployme.app.

Сайт deployme.app выполнен на php фреймворке Symfony и на фронте мы используем react.js.

Показанный пример подойдет для приложений, созданных на фреймворке Symfony старше 4 версии.

Кроме развертывания мы покажем, как Деплойми упрощает разработку проекта, тем, что позволяет не просто развернуть, но и управлять параметрами приложения.

Приложение уже подготовлено для развертывания в Деплойми, в коде проекта есть специфический для php проектов файл composer.json, в котором указаны зависимости приложения и программной платформы, остальная конфигурация, нужная для запуска приложения, подключается из предустановленного типа приложений в Деплойми - Symfony.

Предустановленный тип приложения Symfony, включает в себя билдпаки сборки Symfony и Nodejs, а также билдпак с конфигурацией php и nginx, нужный для запуска стандартного Symfony приложения.

Еще раз обратим внимание, что для развертывания стандартного Symfony приложения, достаточно того, чтобы в корне проекта находился файл composer.json, в котором указаны зависимости приложения, и, что важно, указывалась версия PHP и нужные приложению модули PHP.

Итак, в веб-интерфейсе Деплойми создадим новое приложение, выбрав тип PHP и фреймворк Symfony + Nodejs, затем заполним поля свойств приложений.

Для привязки базы данных - добавим к приложению PostgreSQL, выбрав в блоке “Базы данных” интересующий нас тип БД.

Обратим внимание, что в предустановленном типе приложения Symfony + Nodejs в блоке “Монтирование хранилище” установлено значение public/upload – это значит, что к контейнеру приложения будет примонтирована директория public/upload и данные, размещенные в ней, не будут удалены при пересборке приложения, а в блоке “Переменные окружения” добавлены переменные по умолчанию.

После создания приложения посмотрим свойства приложения, убедимся в их правильности. В разделе “Переменные окружения” добавим переменные из файла .env, загрузив его с локальной машины в Деплойми, отредактируем значения и сохраним конфигурацию. Обратите внимание, что переменная DATABASE_URL автоматически создается и пробрасывается в приложение при создании базы данных.

Для того, чтобы сайт заработал нужно наполнить базу данных, для этого переходим в раздел “Сервисы”, в этом разделе мы видим, что к приложению привязан сервис БД. Загрузим в него дамп - для этого достаточно выполнить всего одну консольную команду на локальной машине. В свойствах сервиса выбираем пункт “Импортировать дамп”, копируем команду и выполняем ее на локальной машине.

Обратите внимание, что импортирование возможно файлов двух типов - SQL и двоичный файл дампа. Используйте подходящую для типа дампа команду.

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

Копируем команду развертывания из веб интерфейса и выполняем ее на локальной машине, находясь в корневой папке проекта.

Принцип развертывания - отправка кода в git репозиторий, расположенный на виртуальной машине, поэтому если в своей работе используете GIT, то достаточно просто “запушить” его по указанному в Деплойми адресу. Если для вас слово GIT, новое - ничего страшного в Деплойми есть краткая инструкция как инициализировать репозиторий и отправить код в Делпойми.

Пока приложение развертывается несколько слов о работе в команде и Деплойми.

Дело в том, что Деплойми – это не просто штука для развертывания кода, это еще инструмент управления приложениями и его сервисами. Как мы видели ранее, мы можем загружать дампы БД, но мы также и выгружать, легко и просто. Это удобно, для синхронизации состояния приложения между участниками команды, например, когда появляется новый разработчик он может самостоятельно забрать дамп БД.

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

В нашем примере новому разработчику нужен дамп БД для возможности разработки локально, для его получения разработчик копирует команду из интерфейса деплойми и загружает дамп на локальную машину. Легко и просто. При этом какую бы базу данных мы не использовали - psql, mysql, mongodb, redis формат команды экспорта и импорта единый для всех типов баз данных!

Итак, наше приложение уже развернулось, смотрим в браузер. Сайт работает, но показывает 404 ошибку, потому что дамп БД мы взяли с другой площадки и в административной панели сайта, нам нужно заменить базовый URL. Меняем, смотрим – все ОК, сайт работает.

Напомню, что кроме управления подключениями баз данных, в Деплойми пользователи управляют свойствами приложения: доменными именами, базовой авторизацией (да, можно взять и одним кликом закрыть приложение от посторонних глаз), ssl-сертификатами let’s encrypt и проксируемыми портами.

Подробнее – https://youtu.be/4yEIB_xup_s

#deployme #php