Один из способов сделать деплой на сервер yii2

10.09.2015

Рано или поздно придется столкнуться с тем, чтобы выгрузить уже свой первый проект на продакшн сервер. Это можно сделать несколькими способами. Один из способов сегодня опишу и я, которым пользуюсь. Мягко говоря он очень прост, если хочется побыстрее все выгрузить и долго не заморачиваться всякими настройками. Много слов никто не любит поэтому:

  1. Делаем комит в репозиторий. Теперь в нашем репозитории имеются все необходимые файлы для загрузки на сервер. 
  2. Заходим на наш продакшн сервер под ssh.
  3. Ставим git. Подробные инструкции по установке гита на сервер расписывать не буду, в интернете полно инструкций. Один из способов: 
apt-get install git-core

git config --global user.name "NewUser" git config --global user.email you@email.com

     4. Далее выполняем:

cd /home/username/web/domain.com/public_html/ (где public_html корневая папка сайта)

git clone https://username@bitbucket.org/username/repository.git (вместо ссылки используйте ссылку на свой репозиторий с разворачиваемым проектом)

     5. Далее возможно запросит пароль от вашего репозитория. Как только это произойдет, вводим, после чего все файлы скопируются на сервер, после чего можно приступить к следующему шагу. Обратите внимание на то, куда скопируются файлы. Указать папку, куда гит скопирует репозиторий можно третьим параметром:

git clone https://username@bitbucket.org/username/repository.git folder_to_copy (где folder_to_copy папка куда будут скопированы файлы)

Обычно folder_to_copy является корневой папкой сервера. Прим.: /home/user/web/test.ru/public_html/

Проследите за тем, чтобы файлы скопировались в корневую папку сервера. И так, файлы скопировали в корень сервера, что дальше?

     6. Дальше ставим composer. Как его ставить, тоже полно инструкций. Вот быстрый и простой способ:

apt-get install php5 git php5-curl (необходимые зависимости)

cd /home/username/web/domain.com/public_html/ (где public_html корневая папка сайта)

curl -sS https://getcomposer.org/installer | php (скачиваем composer в корневую папку сайта)

После установки видим сообщение:

....

Use it: php composer.phar

Это значит что все ок, можем продолжать.

    7. Запускаем: 

php composer.phar install

После чего пойдет установка необходимых пакетов. В принципе все должно пройти гладко. Один из подводных камней может быть то, что процесс прервется с ошибкой из-за того, что какие-то пакеты composer не сможет найти. Что можно предпринять? Проверить файл composer.json, чтобы у пакетов везде стояли "*". Прим.: 

"package/name": "*"

Сохраняем файл, закидываем его по ftp на сервер и повторяем:

php composer.phar install

После чего все должно установиться.

    8. Следующий шаг:

php yii init

Где выбираем "Production mode". 

Правим конфигурационные файлы приложения (прописываем подключение к базе данных). Вот почти и все. Осталось перенести базу данных. Правильно это сделать так:

создаем миграции. Кладем их в папку на сервере: /console/migrations Прим.: /home/username/web/domain.com/public_html/console/migrations/

Запускаем: php yii migrate 

И подтверждаем применение миграции. Все. Проверяем работоспособность сайта.

 

Что дальше?

  1. Дальше разрабатываем сайт
  2. Делаем commit
  3. Заходим на сайт по ssh
  4. git pull
  5. php composer.phar install
  6. yii migrate

 

На этом все. Чтобы автоматизировать процесс выгрузки кода в продакшн можно написать хук. О котором возможно напишу позже.

comments powered by HyperComments