Laravel Homestead
11.x
.
Почему это важно?
- Введение
- Что внутри
- Установка и настройка
- Установка VirtualBox и Vagrant
- Добавление бокса в Vagrant
- Установка Homestead
- SSH-ключи
- Настройте общие папки
- Настройте веб-сервер
- Алиасы (aliases) Bash
- Запуск Vagrant
- Повседневное использование
- Соединение По SSH
- Коннект к базе данных
- Добавление сайтов
- Порты
Введение
Laravel старается сделать восхитительной не только разработку на PHP, но и поднять на уровень выше вашу локальную среду разработки.
Vagrant предоставляет простой и элегантный способ создания и управления виртуальными машинами. Laravel Homestead является официальным “образом” (box) для Vagrant’а, и предоставляет замечательную среду разработки, не требуя устанавливать PHP, веб-сервер и какое-бы то ни было дополнительное серверное ПО на вашей локальной машине. Больше не стоит беспокоиться о захламлении вашей операционной системы! Боксы Vagrant’а являются полностью одноразовыми. Если что-то пойдет не так, Вы сможете уничтожить и пересоздать бокс за считанные минуты!
Homestead работает под любыми версиями Windows, Mac и Linux, и включает веб-сервер Nginx, PHP 5.6, MySQL, Postgres, Redis, Memcached и другие вкусности, которые могут потребоваться вам для разработки потрясающих Laravel-приложений.
Примечание: Если вы используете Windows, то вам надо разрешить в БИОСе хардварную виртуализацию (VT-x)
Текущая версия Homestead создана и протестирована для использования под Vagrant 1.6 .
Что внутри
- Ubuntu 14.04
- PHP 5.6
- Nginx
- MySQL
- Postgres
- Node (включая Bower, Grunt и Gulp)
- Redis
- Memcached
- Beanstalkd
- Laravel Envoy
- Fabric + HipChat Extension
Установка и настройка
Установка VirtualBox и Vagrant
Перед запуском среды Homestead, Вы должны установить VirtualBox и Vagrant. Оба этих программных продукта имеют легкие в использовании установщики для всех популярных операционных систем.
Добавление бокса в Vagrant
Как только VirtualBox и Vagrant будут установлены, Вам следует добавить бокс laravel/homestead
в Vagrant, используя следующую команду в командной строке. Процесс скачки бокса займет какое-то время, в зависимости от скорости вашего интернет-соединения:
vagrant box add laravel/homestead
Установка Homestead
При помощи Composer и PHP
На машине должен быть установлен PHP и Composer
После того как бокс Homestead добавлен в Vagrant, при помощи композера установите глобально инструмент Homestead CLI:
composer global require "laravel/homestead=~2.0"
Проверьте, чтобы папка ~/.composer/vendor/bin
(C:\Users\username\AppData\\Roaming\Сomposer\vendor\bin
в случае Windows) находилась у вас в PATH. Для проверки дайте в терминале команду homestead
.
После установки инструмента, создайте конфигурационный файл Homestead.yaml
:
homestead init
Файл Homestead.yaml
будет создан в папке ~/.homestead
(C:\Users\username\.homestead
в случае Windows). Если вы используете Mac, Linux, или у вас в Windows стоит cygwin или msysgit (он ставится вместе с git), то вы можете редактировать его при помощи этой команды:
homestead edit
При помощи git
В этом варианте вы можете обойтись без установки PHP на локальную машину, вам понадобится только установленный Git+msysgit.
Склонируйте репозиторий с Homestead CLI в произвольную директорию:
git clone https://github.com/laravel/homestead.git Homestead
Создайте Homestead.yaml
в папке ~/.homestead
(C:\Users\username\.homestead
в случае Windows):
bash init.sh
SSH-ключи
Далее вам нужно отредактировать созданный Homestead.yaml
. В этом файле вы можете указать путь к вашему публичному и приватному SSH-ключам, а также сконфигурировать совместно используемые локальной и виртуальной машиной папки.
Ни разу не использовали SSH ключи? Под Mac, Linux или Windows с установленным Git+msysgit Вы можете создать пару ключей (приватный id_rsa и публичный id_rsa.pub), используя следующую команду:
ssh-keygen -t rsa -C "your@email.com"
В Windows в качестве альтернативы вы можете использовать PuTTYgen.
Укажите путь к публичному ключу в свойстве authorize
файла Homestead.yaml
, а путь к приватному – в свойстве keys
.
Настройте общие папки
В свойстве folders
в файле Homestead.yaml
перечислены все локальные папки, доступ к которым вы хотите предоставить в среде Homestead. Файлы в этих папках будут синхронизироваться между локальной и виртуальной машиной. Синхронизация будет двусторонней. Настроить можно столько папок, сколько необходимо.
Настройте веб-сервер
Еще не знакомы с Nginx? Никаких проблем. Свойство sites
позволяет легко связать домен и папку в среде Homestead. В файле Homestead.yaml
имеется пример настройки одного сервера. Опять же, вы можете добавить столько сайтов, сколько вам нужно. Homestead может служить удобной виртуальной средой для нескольких проектов на Laravel.
Если вы хотите, чтобы ваш сайт работал под управлением HHVM, установите параметр hhvm
в true
:
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
hhvm: true
Алиасы (aliases) Bash
Чтобы добавить произвольный алиас в Homestead, просто добавьте его в файл aliases
в папке ~/.homestead
.
Запуск Vagrant
После того как вы отредактировали файл Homestead.yaml
, выполните в терминале команду homestead up
. Если вы установили homestead cli вручную, выполните команду vagrant up
в той папке, куда вы склонировали репозиторий homestead.
Vagrant запустит виртуальную машину, настроит синхронизацию папок и сконфигурирует веб-сервер nginx согласно вашему конфигу автоматически.
Чтобы уничтожить виртуальную машину, выполните команду homestead destroy
. Увидеть весь список команд можно с помощью команды homestead list
.
Не забудьте добавить домены, которые вы будете использовать в Homestead, в файл hosts
. Файл hosts
будет перенаправлять ваши запросы к локальным доменам в среду Homestead. Под Mac и Linux это /etc/hosts
. В Windows – C:\Windows\System32\drivers\etc\hosts
. Строки, добавляемые Вами в этот файл, будут выглядеть примерно так:
192.168.10.10 homestead.app
где 192.168.10.10 – это ip-адрес, прописанный в Homestead.yaml
После того, как вы добавите домен в файл hosts
, вы получите доступ к сайту, развернутому в Homestead из вашего браузера.
http://homestead.app
Повседневное использование
Соединение По SSH
Чтобы подсоединиться к виртуальной машине Homestead по SSH, нужно выполнить в терминале команду homestead ssh
.
Коннект к базе данных
В Homestead установлены две СУБД – MySQL и Postgres. И там и там создана база данных homestead
. В Laravel, дефолтных конфигах для среды выполнения local
, уже стоят данные для работы с этой базой данных.
Для соединения с СУБД Homestead вам нужно настроить клиент (Navicat, Sequel Pro и т.п.) на соединение с ip 127.0.0.1 и портом 33060 (MySQL) или 54320 (Postgres). Логин и пароль одинаковые для этих СУБД – homestead
/ secret
Примечание: Эти нестандартные порты следует использовать только когда вы устанавливаете соединение из своей основной системы. В файлах конфигурации Laravel следует использовать порты по умолчанию 3306 и 5432, так как Laravel запускается внутри виртуальной машины.
Добавление сайтов
Через некоторое время вам, возможно, потребуется добавить домены новых сайтов в Homestead. Для этого есть два способа.
Во-первых, вы можете просто добавить сайты в файл Homestead.yaml
, после чего выполнить vagrant provision
.
Или же Вы можете воспользоваться скриптом serve
, доступным в среде Homestead. Для того, чтобы им воспользоваться, войдите по SSH в среду Homestead и выполните следующую команду:
serve domain.app /home/vagrant/Code/путь/к/директории/public
Замечание: После запуска команды
serve
не забудьте добавить новый домеен в файлhosts
в вашей основной системе.
Порты
Список портов, которые форвардятся из локальной машины в Homestead:
- SSH: 2222 -> Перенаправление на порт 22
- HTTP: 8000 -> Перенаправление на порт 80
- MySQL: 33060 -> Перенаправление на порт 3306
- Postgres: 54320 -> Перенаправление на порт 5432