Skip to content

Latest commit

 

History

History
166 lines (121 loc) · 7.98 KB

homestead.md

File metadata and controls

166 lines (121 loc) · 7.98 KB

Homestead

Для начала разберёмся с Vagrant: Vagrant — утилита, позволяющая создавать виртуальную машину и настраивать её автоматически так, как вы это указали. Из коробки Vagrant работает с VirtualBox, хотя есть поддержка и других решений. Всё, что вам потребуется для того, чтобы развернуть окружение на компьютере — это выполнить одну команду: vagrant up

Одно из главных понятий в Vagrant, это box. Box — это архив, который содержит в себе образ виртуальной машины и файл с настройками для самого Vagrant.

Подробнее о vagrant: http://habrahabr.ru/post/178797/

Homestead как раз и является таким боксом, предоставляющим нам установленные

  • Ubuntu 14.04
  • PHP 5.5
  • Nginx
  • MySQL
  • Postgres
  • Node (+ Bower, Grunt и Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Fabric + HipChat Extension

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

Установка Homestead

Устанавливаем Vagrant и VirtualBox, добавляем бокс Homestead

https://www.virtualbox.org/wiki/Downloads http://www.vagrantup.com/downloads.html

Устанавливаем по порядку, после установки вагранта установщик попросит перезагрузить систему. Во время перезагрузки войдите в BIOS и проверьте, включена ли у вас Intel Virtualization Technology (VT-x, AMD-V), если нет, то включите

После загрузки в консоли выполняем (если вы работаете в Windows, то я советую воспользоваться Git Bash консолью, она нам ещё понадобится):

vagrant box add laravel/homestead

Дальше клонируем репозиторий homestead. Документация советует клонировать в папку, где будут хранится все ваши проекты. (например C:/Users/YourName/Workspace) клонируем:

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

открываем файл homestead/Homestead.yaml

---
ip: "192.168.10.10" # ip вашей будущей виртуальной машины
memory: 2048        # количество выделяемой для неё памяти
cpus: 1             # количество используемых ею процессоров

authorize: /Users/me/.ssh/id_rsa.pub # путь к публичному ключу

keys:
    - /Users/me/.ssh/id_rsa # путь к ключу

folders:                        # папки которые будут синхронизироваться между гостевой и виртуальной машинами
    - map: /Users/me/Code       # Какая папка гостевой (в вашей текущей) машины будет синхронизироваться с виртуальной
      to: /home/vagrant/Code    # какой путь к этой папке будет в виртуальной системе 

sites:                                      # список сайтов, которые автоматически настроятся при инициализации (!) системы
    - map: homestead.app                    # адрес по которому будет доступен сайт
      to: /home/vagrant/Code/Laravel/public # директория, в которой содержится точка входа (index.php) 

если у вас нет ssh-ключей создайте их с помощью

ssh-keygen -t rsa -C "[email protected]"

Если вы работаете на Windows, то ssh-keygen доступна из Git Bash после того как ключи сгенерируются нужно указать их в Homestead.yaml

Для Windows Homestead.yaml будет выглядеть примерно так:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: C:\Users\YourName\.ssh\id_rsa.pub

keys:
    - C:\Users\YourName\.ssh\id_rsa

folders:
    - map: C:\Users\YourName\Workspace
      to: /home/vagrant/Workspace

sites:
    - map: test.dev
      to: /home/vagrant/Workspace/test.dev/public
    - map: ach.dev
      to: /home/vagrant/Workspace/ach.dev/public

Добавьте в файл hosts гостевой машины соответствующие строки (для Windows: C:\Windows\System32\drivers\etc\hosts, для Mac и Linux /etc/hosts)

127.0.0.1 test.dev
127.0.0.1 ach.dev

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

запускаем, выполнив vagrant up в директории homestead

vagrant up

После того, как vagrant инициализирует и запустит виртуальную машину, вы можете проверить её работу, создав файл C:\Users\YourName\Workspace\test.dev\public\index.php с содержимым <?php phpinfo(); и перейдя на http://test.dev:8000

Следующие порты перенаправляются к вашей виртуальной машине

  • SSH: 2222 -> 22
  • HTTP: 8000 -> 80
  • MySQL: 33060 -> 3306
  • Postgres: 54320 -> 5432 то есть вы можете подключиться, например, к mysql с клиентской машины так: mysql -u homestead -p -P 33060 -h 127.0.0.1, логины и пароли для postgresql и mysql -- как vagrant/secret так и root/secret Если вы подключаетесь к бд изнутри вашей виртуальной машины, то используйте стандартные порты

Зайти на виртуальную машину можно выполнив:

vagrant ssh

или

ssh [email protected] -p 2222

все команды vagrant необходимо выполнять из директории homestead

Для добавления новых сайтов есть два способа:

  1. Добавить в Homestead.yaml новый сайт
    sites:
        - map: test.dev
          to: /home/vagrant/Workspace/test.dev/public
        - map: ach.dev
          to: /home/vagrant/Workspace/ach.dev/public
        - map: new.dev
          to: /home/vagrant/Workspace/new.dev/public

и выполнить bash vagrant provision

  1. Зайти на виртуальную машину и воспользоваться командой serve
    vagrant ssh
    serve new.dev /home/vagrant/Workspace/new.dev/public

После добавления любым из этих способов, не забудьте обновить файл hosts: 127.0.0.1 new.dev