Фреймворк Laravel предоставляет свою Linux-сборку под названием Homestead (текущая документация и страница на vagrantup.com) для разработчиков со всеми необходимыми компонентами и даже с небольшим запасом. Эта сборка вполне подходит и для других фреймворков. Текущая версия Laravel 5.8 в Homestead которой входят следующие пакеты:

  • Ubuntu 18.04
  • Git
  • PHP 7.3
  • PHP 7.2
  • PHP 7.1
  • Nginx
  • Apache (Optional)
  • MySQL
  • MariaDB (Optional)
  • Sqlite3
  • PostgreSQL
  • Composer
  • Node (With Yarn, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • Neo4j (Optional)
  • MongoDB (Optional)
  • Elasticsearch (Optional)
  • ngrok
  • wp-cli
  • Zend Z-Ray
  • Go
  • Minio

Для использования Homestead-дистрибутива вам нужна основа – виртуальная машина (VirtualBox, VMWareParallels и т.д.) и надстройка над ней для упрощения работы – Vagrant. Дополнительную информацию о Vagrant можете посмотреть в шпаргалках.

В документации к Laravel Homestead есть подробная инструкция, но она может показаться сложной для новичка. В этой инструкции описаны два основных подхода для работы с проектами на Laravel: 1 – генерировать для каждого проекта отдельный Homestead и 2 – установить одну версию Homestead для всех проектов сразу.

Давайте сразу перейдем к делу. Для начала добавьте box Homestead’а в ваш Vagrant вот такой командой:

Вариант №1 – использование отдельного окружения Homestead для каждого проекта

Этот вариант часто используется для разработки сайтов на Laravel под заказ и передачи вместе с файлами конфигурации Vagrant’a, т.е. мы генерируем окружение и файлы конфигурации этого окружения передаем заказчику вместе с исходниками. Заказчик на своём компьютере может сразу же запустить вашу конфигурацию с помощью одной команды – “vagrant up”. Схема работы выглядит следующим образом: один Homestead обеспечивает работу одного сайта.

Пошаговая настройка (все команды запускаются из корневой директории проекта):

1. Установка Laravel через composer:

2. Установка дополнительного пакета Laravel для генерации файлов конфигурации Homestead:

Рекомендую использовать флаг “–dev” для того, чтобы можно было не устанавливать этот пакет на “боевом” сервере. Да и все остальные пакеты используемые только для разработки лучше помечать этим флагом.

3. Генерация конфигурационных файлов Vagrant:

или:

4. Настройка файла конфигурации Homestead – Homestead.yaml. Вот пример одного моего сайта для Windows:

Приватный и публичный ключи для Windows можно сгенерировать с помощью PuttyGen или аналогичной программы и поместить в корневую директорию вашей учетной записи.

5. Добавление пары “IP” и “site.domain” в hosts-файл. Откройте файл с хостами:

или

И добавьте в него адрес нового сайта:

6. Запуск Vagrant:

Вариант №2 – использование окружения Homestead для множества проектов сразу

Данный вариант предназначен для централизации управления проектами на своём компьютере. Если вы ведете множество проектов и не хотите настраивать Homestead под каждый проект в отдельности, то этот вариант вам точно подойдет. Схема работы выглядит следующим образом: один Homestead обеспечивает работу множества сайтов.

Пошаговая настройка (все команды запускаются из корневой директории проекта):

1. Создайте директорию новую директорию для Homestead и перейдите в неё в командной строке (cd ПУТЬ_ДО_ДИРЕКТОРИИ).

2. Склонируйте официальный репозиторий Homestead с github в созданную папку:

3. Выберите актуальную ветку репозитория (для разных версий Laravel’а она отличаться, в текущем примере используется Laravel 5.8):

4. Запустите скрипт инициализации Homestead:

или

5. Настройте файл конфигурации Homestead – Homestead.yaml: укажите используемую виртуальную машину (в моем случае “provider: virtualbox”), ключи авторизации, список сайтов и другие параметры. Пример:

В этой конфигурации созданы два сайта – “http://site1.loc” и “http://site2.loc”, которые будут работать на вашей основной системе (в моём случае Windows 10). Для того, чтобы эти сайты стали доступны, вам необходимо прописать в файл hosts настройки для каждого, вот так:

К сожалению, на русском языке нет документации для текущей версии Laravel – 5.8, поэтому в “полезные ссылки” помещу ссылки на старые версии. Рекомендую для Laravel читать документацию с официального сайта.

Полезные ссылки:

Комментарии

    1. Пожалуйста 🙂 По поводу документации на русском для Laravel – насколько мне известно, официальной версии нет. Этот пробел пытаются восполнить энтузиасты, но поспеть за обновлениями явно не могут. В статье привел несколько ссылок на русском, возможно, они вам помогут ознакомиться с этим фреймворком, хотя я рекомендую читать актуальную версию на английском, translate.google.ru поможет.

Добавить комментарий