Установка homestead к каждому проекту отдельно

Установка homestead к каждому проекту отдельно

Вместо того, чтобы создавать одну виртуалку для всех своих проектов, можно создавать для каждого нового проекта - отдельную виртуальную машину. При таком подходе удобно кастомизировать отдельную систему, индивидуально под свой проект, не задумываясь о том, что можно что-то поломать в остальных. Так же, явным преимуществом является то, что теперь, вы можете поделиться с другими разработчиками своим конфигом vagrant-контейнера, и они смогут с помощью одной команды vagrant up развернуть оболочку, необходимую для запуска вашего проекта.
И в результате, мы будем иметь проект, который можно будет легко запустить даже в поле, в несколько кликов.

Для того, чтобы ознакомиться с вариантом установки общей виртуальной ОС, и понять, как работать с vagrant, советую почитать статью как установить laravel homestead на windows

Текущая статья предусматривает, что вы уже знакомы с основами vagrant-a, и имеете некий опыт работы с ним. Потому, некоторые очевидные вещи в этой статье будут упускаться.

На даный момент у вас уже должен быть установлен Virtual Box и Vagrant.

Я пользуюсь IDE - PHP Storm, потому, сегодня продемонстрирую, как запускать vagrant в phpstorm.

Шаг 1:
Создаём новый проект laravel через composer.
composer create-project --prefer-dist laravel/laravel newproject
newproject - имя папки, в которой будет создан новый laravel-проект

Я буду демонстрировать способ установки с помощью composer-a, потому у вас так же должен быть установлен composer и php. У меня на на компьютере установлен OpenServer, потому я открою его консоль, и перейду в папку текущего проекта:

console

Аналогично, через composer подключаем homestead:
composer require laravel/homestead --dev

Шаг 2:
Теперь нужно запустить команду, которая создаст конфигурационные файлы:
vendor\\bin\\homestead make

После чего, в папке проекта появились новые файлы, и насколько вы знаете из предыдущей статьи, основным из которых является Homestead.yaml, содержащий все конфигурационные параметры.

Прелесть такого подхода, что все параметры проставились автоматически, и вручную не приходится ничего править.

Содержимое файла Homestead.yaml:

ip: 192.168.10.10
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
    - ~/.ssh/id_rsa
folders:
    -
        map: 'C:\OSPanel\domains\laravel-homestead.loc'
        to: /home/vagrant/code
sites:
    -
        map: homestead.test
        to: /home/vagrant/code/public
databases:
    - homestead
name: laravel-homestead-loc
hostname: laravel-homestead-loc

Шаг 3:
Последнее, что осталось сделать - выполнить команду vagrant up, которая создаст новую виртуальную машину.

В моём случае, я воспользуюсь преимуществом IDE, в которой управление vagrant-ом вынесено в отдельное контекстное меню (Tools > Vagrant):
phpstorm-vagrant

И, сразу после создания виртуальной машины, перейдём по ссылке из Homestead.yaml (http://homestead.test), и получим вот такой ответ:
laravel

Ввиду того, что OpenServer у меня выключен, то с уверенностью можно сказать, что виртуалка запустилась, и работает корректно.

Для того, чтобы перейти в консоль виртуальной машины выполним vagrant ssh:
ssh-1

И перейдём в директорию проекта:
cd code && ls
И вам будет показано полное содержимое нашего laravel-проекта, который мы создали ранее. И вот так и получается, что наш проект так просто был прокинут в виртуальную ОС.

Теперь вы знаете, как использовать vagrant и homestead. А так же, в этой статье была немного затронута тема vagrant в phpstorm. Удачи в программировании