VamShop 3 — Vagrant + Scotch Box

Прошлая статья — VamShop 3 — Настройка Vagrant + Chef

Была больше вступительной, т.е. больше теоретической и объясняющей, что такое vagrant, для чего он нужен, как самому настраивать виртуальную машину с нуля, с помощью chef, добавляя модули (рецепты) из книги рецептов (cookbook).

Но это не единственный вариант настройки виртуального окружения с vagrant.

Можно сделать всё гораздо проще.

В vagrant есть готовые образы виртуальных машин, с уже настроенным окружением, так называемые боксы.

Официальный сайт с боксами — https://app.vagrantup.com/boxes/search

К примеру, скачивается уже готовый образ с настроенным стэком LAMP (Linux+Apache+MySQL+PHP).

В этом случае Вам вообще ничего не надо делать, просто выполнили в папке с VamShop команду:

vagrant up

 VamShop 3 — Vagrant + Scotch Box

и у Вас запустилось готовое к работе окружение.

В данном примере будет использоваться готовый набор — Scotch Box

Официальный сайт: https://box.scotch.io/

Это готовый набор, всё, что может Вам понадобиться для работы с php проектами.

Итак, что же мы делаем, как нам запустить этот бокс.

Всё просто, меняем наш стандартный конфиг Vagrantfile  в папке VamShop и меняем его содержимое на:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(”2″) do |config|

    # /*=====================================
    # =            FREE VERSION!            =
    # =====================================*/
    # This is the free (still awesome) version of Scotch Box.
    # Please go Pro to support the project and get more features.
    # Check out https://box.scotch.io to learn more. Thanks

    config.vm.box = “scotch/box”
    config.vm.network “private_network”, ip: “16.17.18.19″
    config.vm.hostname = “vamshop”
    config.vm.synced_folder “.”, “/var/www/public”, :mount_options => ["dmode=777", "fmode=666"]

    # Optional NFS. Make sure to remove other synced_folder line too
    #config.vm.synced_folder “.”, “/var/www”, :nfs => { :mount_options => ["dmode=777","fmode=666"] }

end

 VamShop 3 — Vagrant + Scotch Box

По умолчанию VamShop 3 уже идёт именно с этим конфигом.

Всё, теперь запускаем наше окружение командой:

vagrant up

 VamShop 3 — Vagrant + Scotch Box

Будет загружен бокс scotchbox и запущено всё необходимое окружение.

882059358 Screenshotfrom2018 11 2214 13 16.png.4b827bbaa1160b744b4a45e5e6bf6f34 VamShop 3 — Vagrant + Scotch Box

Всё готово.

Machine booted and ready — все загрузилось и готово к работе.

Теперь открываете браузер и указываете адрес нашей виртуальной машины: 16.17.18.19

Сразу же откроется установка VamShop:

1211049970 Screenshotfrom2018 11 2214 34 49.thumb.png.32bb6a6954f3e6a2144c6866c2164669 VamShop 3 — Vagrant + Scotch Box

Подробнее про scotchbox, какие логины, пароли по умолчанию установлены к mysql, всё это на официальном сайте: https://box.scotch.io/

Я просто сразу напишу, что доступ к базе следующий:

сервер — localhost

логин — root

пароль — root

база — scotchbox

т.е. Вы сразу же можете установить VamShop указав эти данные.

и у Вас уже готов к работе VamShop, установленный и рабочий.

Надо ещё сказать, что vagrant пробрасывает внутрь виртуальной машины Вашу папку с магазином.

т.е. у Вас получается вроде как и изолированное окружение, но все рабочие файлы у Вас берутся с Вашего основного диска.

Это очень удобно, нет дублирования файлов у Вас на основном диске и внутри виртуальной машины.

Всё это прописано в конфиге Vagrantfile, т.е. папка /var/www/public внутри виртуальной машины это Ваша папка на основном диске компьютера. Если Вам надо что-то исправить в коде, Вы просто правите файлы на своём диске и они так же будут исправлены внутри изолированного виртуального окружения.

Кроме того, можно установить не через браузер VamShop, а через консоль, для этого после запуска vagrant, подключайте по ssh к виртуальной машине:

vagrant ssh

 VamShop 3 — Vagrant + Scotch Box

Подключившись, в терминале видно, что Вы в виртуальной машине с запущенным scotchbox образом, смотрите скрин:

1008650589 Screenshotfrom2018 11 2215 02 25.png.32220eac7f550376fc5eb61afa548ce9 VamShop 3 — Vagrant + Scotch Box

Переудите в папку веб-сервера:

cd /var/www/public

 VamShop 3 — Vagrant + Scotch Box

и запускайте установу через консоль, командой:

bin/cake Vamshop/Install.install

 VamShop 3 — Vagrant + Scotch Box

Скрипт Вас попросит указать доступ к базе данных, логин и пароль к админке.

Либо можно так, указав все параметры сразу в команде:

bin/cake Vamshop/Install.install -u root -p root -d Mysql -n scotchbox -h host -t 3306 admin password

 VamShop 3 — Vagrant + Scotch Box

Всё, затем открываете в браузере http://16.17.18.19 и у Вас рабочая копия VamShop.

Можно сделать ещё проще, производить установку прямо при запуске vagrant, добавив в конфиг Vagrantfile что-то типа:

  config.vm.provision :shell, :inline => “cd /var/www/public && bin/cake Vamshop/Install.install -u dbuser -p dbpass -d Mysql -n dbname -h host -t 3306 admin pass
“

 VamShop 3 — Vagrant + Scotch Box

Тогда прямо после запуска виртуального окружения сразу открывайте браузер и переходите на http://16.17.18.19 и у Вас будет установленный VamShop.

Просто так делать не всегда удобно, потому что при каждом старте виртуального окружения у Вас будет всё сбрасываться и устанавливаться по-новой при каждом запуске виртуального окружения, а это не всегда нужно.

Давайте напоследок ещё раз, как теперь выглядит рабочий процесс запуска VamShop и всего необходимого окружения у Вас на компьютере с использованием Vagrant + Scotch Box:

1. Открыли терминал (консоль) и собрали VamShop в текущей директории командой:

composer create-project vamshop/vamshop-app ./

 VamShop 3 — Vagrant + Scotch Box

1340617553 Screenshotfrom2018 11 2214 26 06.png.c70adc3088b17c95accfb18b9aa692e5 VamShop 3 — Vagrant + Scotch Box

Composer загрузит скелет приложения VamShop, который в свою очередь загрузит все необходимые зависимости: VamShop модули, CakePHP, необходимые библиотеки.

Composer в конце загрузки Вас спросит установить необходимые права доступа на файлы и папки:

Set Folder Permissions ? (Default to Y) [Y,n]? Y

 VamShop 3 — Vagrant + Scotch Box

Указываете на клавиатуре Y и кнопку Enter.

326534023 Screenshotfrom2018 11 2214 28 37.png.9ba1d4841ad7d01acbd8f72e62d67f82 VamShop 3 — Vagrant + Scotch Box

Будут выставлены необходимые для работы права доступа на файлы и папки, обновлено значение Security.salt в /app/Config.php

Генерируется каждый раз уникальное значение для каждого магазина. В дальнейшем данное значение будет испольовано, к примеру, при работе с API VamShop,  а имено при авторизации с помощью JWT токенов. Но данная заметка не об этом, статьи про VamShop API есть отдельная, почитайте, если интересно.

 VamShop 3 — Vagrant + Scotch Box

Всё. VamShop полностью собран и готов к работе.

2. Запускаем виртуальное окружение:

vagrant up

 VamShop 3 — Vagrant + Scotch Box

869761056 Screenshotfrom2018 11 2214 32 29.png.7a6efab1ce2babaa24aceedddec75b92 VamShop 3 — Vagrant + Scotch Box1450545174 Screenshotfrom2018 11 2214 33 29.png.73776900f11985725c257c54efc4f323 VamShop 3 — Vagrant + Scotch Box

Увидели Machine booted and ready

Значит всё хорошо, виртуальное окружение готово.

3. Открываем в браузере адрес: 16.17.18.19

1211049970 Screenshotfrom2018 11 2214 34 49.thumb.png.32bb6a6954f3e6a2144c6866c2164669 VamShop 3 — Vagrant + Scotch Box1265100512 Screenshotfrom2018 11 2214 35 13.thumb.png.a4c038753a990ca57604c31c8aef1219 VamShop 3 — Vagrant + Scotch Box

и проходим установку до конца.

Всё, у Вас полностью рабочая копия VamShop со всем необходимым.

Если не нравится отркрывать ip адрес, можете задать имя.

В файле /etc/hosts добавьте строку:

16.17.18.19 vamshop.dev

 VamShop 3 — Vagrant + Scotch Box

Тогда в браузере можно открывать адрес http://vamshop.dev

P.S. Что б всё это работало так же быстро и удобно, как я описываю, у Вас должен быть установлен необходимый софт (virtualbox, vagrant, composer), об этом я писал в прошлой статье подробно —

Related posts:

  1. VamShop 3 — Настройка Vagrant + Chef В данной заметке расскажу про настройку рабочего окружения с...
  2. Новая версия VamShop 2.59 Выпущена новая версия VamShop 2.59 Скачать полную версию VamShop...
  3. VamShop 3 — Travis CI Данная заметка — продолжение прошлой статьи про PHPunit — ...

Comments are closed.