Я создал post-receive
hook для git-репозитория, чьи проверки фиксируются в веб-папке /var/www/myproject
. Поскольку я не выполняю зависимости (файлы фреймворка), при проверке мне приходится устанавливать зависимости и инициализировать фреймворк. Я вижу два подхода:
1) При проверке выполните следующие команды из каталога проекта:
composer install
php init --env=Development --overwrite=n
#other commands to setup db connection, credentials etc.
2) Установите зависимости на один уровень вверх по проверенному проекту /var/www
и получите ссылки на один уровень вверх. Но похоже, что при таком подходе мне все равно нужно запустить php init
.
Какой общий подход для такого развертывания?
Важной особенностью расширенного приложения является наличие отдельных внешних и внешних приложений. Поэтому, если вы проверите свое репо на /var/www/myproject
, будут созданы два важных каталога: /var/www/myproject/frontend/web
и /var/www/myproject/backend/web
. Обычно вы настраиваете свой веб-сервер для того, чтобы эти два каталога были веб-корнями для двух разных доменов (например, example.com
и admin.example.com
).
В расширенном приложении Yii2 представлена концепция "среды". Среда - это в основном набор конфигурационных файлов, которые, среди прочего, включают учетные данные db. Поэтому, если вы не против иметь учетные данные в своем репо, возможно развертывание push-развертывания.
Поэтому, если вы планируете иметь несколько серверов с несколькими конфигурациями, вы просто создаете среду для каждого сервера и используете ее для развертывания.
Итак, вот шаги, которые вам нужно предпринять после проверки репо.
composer install
: composer install
Довольно просто. Имейте в виду, что fxp/composer-asset-plugin
должен быть установлен глобально для композитора для извлечения зависимостей между каналами и npm.
init --env=your_server_environment --overwrite=All
Вы должны перезаписать все. Если вы обновили какой-либо параметр в своей среде, он будет применен к текущей настройке.
yii migrate --interactive=0
Это все, что есть.
advanced
шаблон приложения? Если да, то удивительно, что вы проверяете свой проект в/var/www/
. Если вы не (если вы используетеbasic
приложение), вам не нуженinit
.init
. Почему удивительно проверить на/var/www
?