Как правильно деплоить laravel проект?

Добрый день, интересует вопрос - как правильно работать и деплоить laravel проект.

К примеру сейчас веду разработку полностью по фтп на прямую обновляя изменения на сайте. Но это не актуально если проект посещает много людей и могут увидеть ошибку в любой момент обновления.

Так вот, никогда не работал с гитом и с прочими системами. Насколько я понимаю разработку можно вести на локалке, только не понимаю как тогда будет бд подтягиваться (отдельно локальная и отдельно сервер или общая?). Так же установить git (систему контроля версия). Затем работать на локалке, а когда уже все оттестировано, загружать сначала на git, а потом каким то образом получить все изменения на сервере.

Постарался максимально объяснить суть проблемы, надеюсь получилось. Спасибо, хорошего дня!
  • Вопрос задан
  • 2361 просмотр
Пригласить эксперта
Ответы на вопрос 3
php666
@php666
PHP-макака
только не понимаю как тогда будет бд подтягиваться
никак. зачем тебе боевые данные на локалке? Достаточно раз в неделю/месяц сделать восстановление из файла бэкапа с боевого сервера. У тебя не так часто меняются таблицы думаю.

Про структуру таблиц - есть миграции. Это в доках по ларавелу написано.

По гиту и композеру. Самое простое:

Нужен локально гит. Под windows тут.
Нужен композер (или архив composer.phar)
Инициализируешь на гитхабе репозиторий
сливаешь локально этот пустой репозиторий к себе на комп, делая в утилите gitbash
cd C:/govnocode
git clone https://github.com/youprofilename/reponame.git .
кидаешь в C:/govnocode свой код, предварительно указав в gitignore то, что не должно быть в гите - файлы логов, файлы с изображениями пользователей, всякие мусорные файлы типа test.php и тд
делаешь
git commit -a -m "govnocode"
git push origin master
говнокод твой улетит в репозиторий - это будет первый пуш кода в репозиторий

на сервере делаешь новую боевую директорию, выполняешь
git clone https://github.com/youprofilename/reponame.git .
с гита все файлы прилетят тебе на хост

дома правишь файлы, делаешь
git commit -a -m "govnocode version 2"
git pull origin master
git push origin master

изменения уйдут в репо. когда надо подтянуть на сервер. делаешь на сервере
git pull origin master

кмпозер запускаешь для подтягивания зависимостей, доки в сети есть, запускать нужно и на локальном пк и на серваке
Ответ написан
Комментировать
SH8DER
@SH8DER
Начинающий Web-разработчик
Я профессионально не занимаюсь разработкой, и тем более не знаком с Laravel. НО

Ведёшь разработку локально, база данных у тебя тоже локальная с фейковыми данным (в Laravel вроде Facker Seeds есть), структуру меняешь через миграции. Пишешь тесты на каждую новую фичу, используешь Composer.

У тебя должен быть репозиторий с несколькими ветками, минимум 2 - dev - master.

Когда сделал новую фичу на локалке, пушиш её в ветку dev, изменения улетают допустим в GitLAb -- там запускается CI скрипт, прогоняются тесты, если всё ок, то делается мёрдж ветки с данной фичей в мастер, после чего запускается хук и прод.сервер делает у себя Pull мастера, после чего на серваке запускаются скрипты обновления зависимостей Composer, миграции и т.д.

Ну в общем как-то так, я думаю профессионалы поправят меня, но в целом примерно так ведётся разработка.
ps - можно ещё это всё в docker контейнеры запихать, по желанию.
Ответ написан
zorca
@zorca
Deployer вполне справится. Есть готовая обертка для Laravel: https://github.com/lorisleiva/laravel-deployer
Следующим шагом вешаем деплой на Github Actions на ветку stage скажем и наслаждаемся автоматической отправкой изменений при пуше в эту ветку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы