Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Установка и настройка Laravel Homestead

Раздел: 

В 2014 году Laravel сделал еще один серьезный шаг для своей популяризации — сообществу был представлен Vagrant-бокс Homestead.

Laravel Homestead

Говоря простым языком в наше распоряжение представили виртуальную машину заточенную под разработку на Laravel.

Homestead позволяет не задумываться на какой операционной системе будет происходить разработка проекта, поскольку обеспечивает полную поддержку всех распространённых ОС (Windows, Mac, Linux) и начинку со всем необходимым для разработки.

Этот факт может особенно порадовать начинающих веб-разработчиков работающих под Windows, поскольку в будущем, когда они дорастут до разработки под Linux, благодаря кросплатформенности данной виртуальной машины процесс перехода будет значительно упрощен.

Что входит в состав Homestead?

  • Ubuntu 14.04 — операционная система с открытым кодом разработанная на основании Linux.
  • PHP 5.6 — не успел пройти релиз новой версии PHP летом 2014-го года, а поддержка данного стандарта уже была включена в базовую сборку нашего Vagrant-бокса.
  • Nginx — простой и надежный веб и прокси сервер.
  • MySQL — если кто еще не знает, это система управления базами данных.
  • Postgres — еще одна система управления БД
  • Node — среда для выполнения JS.
  • Redis — нереляционная СУБД.
  • Memcached — сервис для кеширования данных.
  • Beanstalkd — механизм используемый для выполнения фоновых задач.
  • Laravel Envoy — позволяет работать с SSH-задачами.
  • Fabric + HipChat Extension

Установка и настройка

Сделаем обзор на примере Windows.

Установка

Начинаем установку с того, что скачиваем и ставим Vagrant и VirtualBox. Этот этап самый простой. Данные продукты ставятся как самые обычные приложения на все распространенные ОС, потому сразу идем далее.

Вагрант попросит перезагрузить систему. На этом этапе установки есть один нюанс — при перезапуске необходимо зайти в BIOS и проконтролировать, чтобы был подключен функционал аппаратной визуализации Intel Virtualization Technology (VT-x).

Для дальнейшей установки воспользуемся консолью (рекомендую Git Bash, удобная вещь для многих задач).

Командой:

vagrant box add laravel/homestead

Добавляем в Vagrant наш бокс laravel/homestead.

Файл достаточно большой, потому процесс его загрузки может занять некоторое время.

Чтобы не терять его зря сразу скопируем хранилище с конфигурационными файлами в папку, в которой после будут располагаться наши рабочие проекты, к примеру: C:/Users/MyName/MyProject

Команда для этого действия:

git clone https://github.com/laravel/homestead.git

Настройка

Далее:

bash init.sh

Так создается Homestead.yaml. В нем находятся основные настройки которые потребуются после для создания локальной машины. Находится он в ~/.homestead ( C:\Users\username\.homestead в Виндовс)

Открываем наш .yaml и прописываем в authorize путь к публичному SSH ключу, а в keys пишем путь к приватному. Для создания пишем в Git:

ssh-keygen -t rsa -C "example@my.ru"

Далее в folders указываем пути к папкам, использовать которые мы сможем внутри Homestead (папки с нашими проектами). Этим действием мы синхронизируем папки и файлы содержащиеся внутри локальной и виртуальной машин.

Интересным аспектом для многих разработчиков может стать поддержка запуска своих проектов в среде HHVM, особенно учитывая, что для этого достаточно воспользоваться всего одной командой:

sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public hhvm: true

Добавление новых алиасов тоже не составит особых проблем. Для этого достаточно найти в нашей виртуальной машине ~/.homestead и воспользоваться файлом aliases.

Домены с которыми мы будем работать необходимо прописывать в файл hosts (в Виндовс он располагается в директории: C:\Windows\System32\drivers\etc\hosts)

Пример строки, которую необходимо добавить:

146.124.10.10 my-site.local

Цифры в начале это ip из Homestead.yaml, далее идет наш произвольный домен. Теперь мы можем перейти на созданный нами сайт воспользовавшись браузером.

Настроив локальную машину пришло время подключить Vagrant. Это делается просто - выполняем внутри Homestead:

vagrant up

Данная команда синхронизирует папки, сконфигурирует Nginx согласно нашим настройкам, и произведет запуск виртуалки.

Стоит ознакомиться перед началом разработки

Команды имеющие отношение к Vagrant выполняются из homestead директории.

Для установки SSH соединения используется:

vagrant ssh

Для подключения очередного проекта существует пара способов. В первом используется наша виртуалка:

vagrant ssh
serve new.dev /home/vagrant/Workspace/new/public

Второй — заходим в наш Homestead.yaml, находим там sites, прописываем что нам нужно добавить придерживаясь шаблона из примера, запускаем:

vagrant provision

Профит, сайт добавлен.

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

Протокол Номер порта локального Номер порта виртуального
SSH 2222 22
HTTP 8000 80
MySQL 33060 3306
Postgres 54320 5432

Полезно также помнить, что в предлагаемой нам среде для разработки используется две широкоизвестных СУБД: MySQL и Postgres. В Laravel исходно все уже настроено для того, чтобы сразу приступать к работе не заморачиваясь по этому поводу. Для тех кому интересно скажу, что по умолчанию он использует порты виртуальной машины, поскольку он располагается внутри нее, так для MySQL это 3306, а для Postgres 5432 порты.

Если же для работы с БД нам необходимо настроить другой клиент, то необходимо использовать ip 127.0.0.1 и порты 33060 с 54320 для MySQL с Postgres соответственно. Логин будет для обеих баз homestead, а пароль secret.