Установка homestead laravel windows

Как установить laravel homestead windows 10

До моего тесного знакомства с vagrant-ом и виртуальными машинами — установка laravel homestead на windows 10 приводила к трудоёмкому и сложному процессу, поиска решения ошибок, которые, сыпались на протяжении всей установки. Однако, разобравшись с этим детальнее, и несколько раз попрактивовавшись, я понял, что работа с vagrant-ом не такая уже и сложная, а преимуществ открывает очень много. Я понимаю боль программистов на php, работающих на winsows. Потому, в нашем случае, создание виртуалки просто жизненно необходимо.

Прежде всего хочу сказать, что эта статья нужна далеко не всем. Для типовых решений, для разработчиков, создающих лендинги, и сайты-визитки — виртуалка вовсе не нужна. Установка виртуальной ОС, использование Vagrant, Docker — это уже следующий шаг в разработке, который делает более простым путь к созданию сложных продуктов, не ограничевающихся одним языком программирования.

Я пишу эту статью, чтобы проиллюстрировать процесс установки и запуска laravel-проекта с помощью vagrant и virtualBox. Чтоже, хватит слов, давайте сделаем это.

Официальная документация по homestead. Советую предварительно ознакомиться, что из себя представляет эта сборка, что содержит внутри.

Для того, чтобы разобраться в вопросе установки, советую печатать все команды вручную, и смотреть на результат. От копи-паста, или бездумной печати толку нету. Вы ведь здесь за знаниями?

Шаг 1:
Прежде всего, нужно предварительно настроить систему. Для того, чтобы virtual box работал правильно, нужно включить аппаратную виртуализацию.
Распространённая проблема при отключённой виртуализации (64-разрядной системы) — это отсутствие выбора x64 операционных систем (при попытке создание виртуалки вручную)

Шаг 2:
Теперь, когда подготовительные процедуры закончены, установим:
VirtualBox и vagrant
После скачивания нужно будет установить VirtualBox, а после — Vagrant. Вам, возможно, потребуется перезагрузить ваш компьютер, и можно будет переходить к следующему шагу.

Шаг 3:
Для простой работы с репозиториями потребуется git. Потому, допонительно нужно скачать git bash по ссылке и установить.

Шаг 4:
На этом шаге, общие настройки уже выполнены, теперь нам нужно скачать сборку homestead.
Для этого нужно запустить git bash от имени администратора, и выполнить команду:
vagrant box add laravel/homestead

И нужно выбрать, какой программой виртуализации мы будем пользоваться (а данном случае — virtualbox, указываем 3)

После длительного процесса скачивания и установки, мы должны получить сообщение в консоли о том, что box успешно добавлен, и соответственно, готов к запуску

Если при попытке выполнить команду последовала ошибка, то попробуйте установить/обновить MS Visual C++ 2010

Шаг 5:
После завершения установки, нужно выбрать директорию, в которой будет храниться ядро нашего проекта (конфиги vagrant-a, наш laravel-проект, и т.д.), и перейти в неё.
Для себя я решил, что текущий проект размещу в папке текущего пользователя C:\Users\Fomenko Alexandr

В git bash-e я перехожу в нужную директорию cd C:\Users\Fomenko Alexandr

И выполняю команду:
git clone https://github.com/laravel/homestead.git Homestead
Эта команда склонирует Homestead репозиторий в нашу папку

И, как указанно в документации, выполним 2 команды.
Первая — переходит в ново-созданную папку Homestead
cd Homestead
И вторая команда, которая ищет в этой папке файл init.sh, и выполняет его. А он уже, автоматически инициализирует проект и создаёт конфигурационные файлы
bash init.sh

Должно получится именно так:

В итоге, эта команда должна была создать файл конфигурации Homestead.yaml, который рассмотрим ниже

Шаг 6:
В этом шаге нужно создать ssh-ключи. Для того, чтобы проверить их наличие, нужно перейти в папку C:\Users\YOUR_USER_NAME и проверить существование папки .ssh , которая должна содержать 2 файла — id_rsa и id_rsa.pub .

Читайте также:  Кнопки для блокировки windows

На самом деле, можно и не проверять вручную, а просто выполнить команду по созданию нового ключа
ssh-keygen -t rsa -C «your_email@site.com»
И, в случае, если ключи были созданы ранее, то будет предложено из перезаписать.
При создании ключа, вам будет задано несколько вопросов (в консоли), вам достаточно нажимать enter.

Шаг 7:
Этот этап является заключительные по предварительной настройке проекта. Сейчас осталось сконфигурировать опции создаваемой виртуальной машины.
Все настройки находятся в файле Homestead.yaml, который мы ранее сгенерировали автоматические на 5 шаге.

Открыв этот файл в редакторе, можно увидеть его стандартный вид:

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

Вверху файла бросается в глаза этот блок:

Первая строка, задающая ip — указывает на то, какой ip адрес нам нужно слушать. Это опционально, можно задать любой. Я же, оставлю таким, как есть сейчас.
memory — задаёт, сколько максимально виртуалка может использовать оперативной памяти (в данном случае — 2048 мб).
cpus — количество используемый ядер,
и provider — очевидно, неизменно, virtualbox

В этом блоке указываются пути к созданным ранее ssh-ключам.

Нам нужно указать полный путь к файлам ключей. В итоге, этот блок будет выглядеть:

Вместо USER_NAME укажите имя вашего пользователя

Следующий код «пробрасывает» нашу папку windows 10 в локальную машину:

При том, что при изменении этих файлов у нас, автоматически будут изменяться аналогичные файлы виртуальной машины.
map — означает, какую нашу папку прокидывать
to — по какому пути она будет доступна в виртуалке

Зная это, перепишем конфиг:

И теперь, когда мы запустим виртуалку, то и виртуальная система, и локальная будут ссылаться на одну и ту же папку. Потому, изменения будут двунаправленными, и изменения будут применять сразу же.
Я пробросил пустую папку ( C:\OSPanel\domains\new-laravel.test ), которая в виртуальной машине будет доступна по адрему /home/vagrant/code

Следующий блок помогает настроить нам nginx. Здесь мы указываем, какой домен соответствует какой папке:

Не стоит путать с предыдущим пунктом, они не имеют ничего общего между собой. Это всего лишь так совпадает, что мы вписываем туда папку, которую прокидывали ранее. Однако, мы можем вписать любую папку, существующую на виртуалке.
Пока что мы не создавали /home/vagrant/code/Laravel/public , однако, мы это вскоре исправим. И, ввиду того, что laravel публичную папку именует public , то это как раз и является заготовкой для переадресации на единую точку входа public/index.php.

В будущем, этот участок будет разростаться, и станет содержать одновременно несколько сайтов:

В нашем же случае, пока всё просто, нам нужен только один сайт:

Последний важным параметром являются создаваемые базы данных. Здесь мы указываем, какие базы данных создать при инициализации виртуальной машины:

Я же создам под названием new-laravel

Ура! Настройка окончена. Почти.

Шаг 8:
По задумке, в Homestead.yaml мы указывали домен, по которому будет доступен наш сайт. Однако, наш компьютер пока ничего не знает об этом домене. И, попытавшись открыть этот адрес в браузере — получим ошибку. И для того, чтобы он узнал об этом домене, мы сделали некоторые подготовительные операции ранее.

В начале 7 шага, мы указывали ip . И задать его можно было любым, потому как его, вручную придётся прописать в файле hosts (C:\Windows\System32\drivers\etc\hosts). В моём случае, я должен прописать 192.168.10.10 new-laravel.test . Что говорит о том, что в случае попытки перейти по адресу new-laravel.test ответственность за его отображение будет переложено на нашу локальную машину с ip 192.168.10.10.

При добавлении нескольких сайтов, файл hosts будет иметь вид:

Шаг 9:
И вот, все нужные настройки были произведены. И теперь можно запустить процесс инициализации виртуальной машины.
Для этого, в директории, где лежит Homestead.yaml выполняем команду vagrant up . И, спустя некоторое время, ваша виртуалка заработает и мир станет на одного программиста счастливее.

Читайте также:  Linux find last modified files

Так же, стоит запомнить ещё одну полезную команду, которая, в случае изменения конфигурации, заново пересоздаёт виртуалку:
vagrant provision

А, для того, чтобы подключиться из консили к самой вируальной машине:
vagrant ssh
И все команды будут выполняться внутри вируальной машины

Шаг 10:
Теперь мы имеем полностью рабочую боевую единицу. И когда подключимся по ssh vagrant ssh , перейдя в папку проекта: cd /home/vagrant/code
Выполним команду composer create-project —prefer-dist laravel/laravel Laravel

И теперь, перейдя в папку у себя на компьютере, вы сможете увидеть новую папку Laravel, которую мы только создали из виртуальной машины, и в которой, теперь находится новый laravel-проект.

Это один из вариантов использования homestea-a, когда есть одна система, и в нее пробрасываются все наши проекты. И этот вариант является отлично заменой openserver-a, только с бОльшими возможностями.
Так же, распространенной практикой является создание отдельной виртуальной машины со своей конфигурацией под каждый из проектов. Но это уже другая тема, выходящая за рамки этой статьи.

А на этом всё. Теперь laravel доступен по указанному ранее нами адресу. Удачной разработки. Теперь вы точно знаете, как установить laravel на windows.

Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql

Get the latest posts delivered right to your inbox

Laravel Framework Russian Community

Введение

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, используя следующую команду в командной строке. Процесс скачки бокса займет какое-то время, в зависимости от скорости вашего интернет-соединения:

Установка Homestead

При помощи Composer и PHP

На машине должен быть установлен PHP и Composer

После того как бокс Homestead добавлен в Vagrant, при помощи композера установите глобально инструмент Homestead CLI:

Проверьте, чтобы папка

/.composer/vendor/bin ( C:\Users\username\AppData\\Roaming\Сomposer\vendor\bin в случае Windows) находилась у вас в PATH. Для проверки выполните в терминале команду homestead .

После установки инструмента, создайте конфигурационный файл Homestead.yaml :

Файл Homestead.yaml будет создан в папке

/.homestead (или C:\Users\username\.homestead в случае Windows). Если вы используете Mac, Linux, или у вас в Windows стоит cygwin или msysgit (он ставится вместе с git), то вы можете редактировать его при помощи этой команды:

При помощи git

В этом варианте вы можете обойтись без установки PHP на локальную машину, вам понадобится только установленный Git+msysgit.

Склонируйте репозиторий с Homestead CLI в произвольную директорию:

Она создаст файл Homestead.yaml в папке

/.homestead (или C:\Users\username\.homestead в случае Windows)

SSH-ключи

Далее вам нужно отредактировать созданный Homestead.yaml . В этом файле вы можете указать путь к вашему публичному и приватному SSH-ключам, а также сконфигурировать совместно используемые локальной и виртуальной машиной папки.

Читайте также:  Xbox series x запуск windows

Ни разу не использовали SSH ключи? Под Mac, Linux или Windows с установленным Git+msysgit вы можете создать пару ключей (приватный id_rsa и публичный id_rsa.pub), используя следующую команду:

В Windows в качестве альтернативы вы можете использовать PuTTYgen.

Укажите путь к публичному ключу в свойстве authorize файла Homestead.yaml , а путь к приватному — в свойстве keys .

Настройте общие папки

В свойстве folders в файле Homestead.yaml перечислены все локальные папки, доступ к которым вы хотите предоставить в среде Homestead. Файлы в этих папках будут синхронизироваться между локальной и виртуальной машиной. Синхронизация будет двусторонней. Настроить можно столько папок, сколько необходимо.

Настройте веб-сервер

Еще не знакомы с Nginx? Никаких проблем. Свойство sites позволяет легко связать домен и папку в среде Homestead. В файле Homestead.yaml имеется пример настройки одного сервера. Опять же, вы можете добавить столько сайтов, сколько вам нужно. Homestead может служить удобной виртуальной средой для нескольких проектов на Laravel.

Если вы хотите, чтобы ваш сайт работал под управлением HHVM, установите параметр hhvm в true :

Алиасы (aliases) Bash

Чтобы добавить произвольный алиас в Homestead, просто укажите его в файле aliases в папке

Запуск Vagrant

После того как вы отредактировали файл Homestead.yaml , выполните в терминале команду vagrant up из каталога с установленным Homestead.

Vagrant запустит виртуальную машину, настроит синхронизацию папок и сконфигурирует веб-сервер Nginx согласно вашему конфигу.

Чтобы уничтожить виртуальную машину, выполните команду vagrant destroy —force .

Не забудьте добавить домены, которые вы будете использовать в Homestead, в файл hosts . Файл hosts будет перенаправлять ваши запросы к локальным доменам в среду Homestead. Под Mac и Linux это /etc/hosts . В Windows — C:\Windows\System32\drivers\etc\hosts . Строки, добавляемые вами в этот файл, будут выглядеть примерно так:

где 192.168.10.10 — это ip-адрес, прописанный в Homestead.yaml

После того, как вы добавите домен в файл hosts , вы получите доступ к сайту, развернутому в Homestead из вашего браузера.

Повседневное использование

Соединение По SSH

Чтобы подсоединиться к виртуальной машине Homestead по SSH, нужно выполнить в терминале команду vagrant ssh из каталога с установленным Homestead.

Вероятно, вам придется часто подключаться к вашей Homestead-машине, поэтому логичным будет создать «alias» на хост-машине:

После этого вы сможете подключаться к вашей Homestead-машине с помощью команды vm из любого каталога.

Коннект к базе данных

В Homestead установлены две СУБД — MySQL и Postgres. И там и там создана база данных homestead . В Laravel, дефолтных конфигах для среды выполнения local , уже указаны параметры для работы с этой базой данных.

Для соединения с СУБД Homestead вам нужно настроить клиент (Navicat, Sequel Pro, HeidiSQL и т.п.) на соединение с 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 не забудьте добавить новый домен в файл hosts в вашей основной системе.

Порты

Список портов, которые перенаправляются из локальной машины в Homestead:

  • SSH: 2222 → Перенаправление на порт 22
  • HTTP: 8000 → Перенаправление на порт 80
  • MySQL: 33060 → Перенаправление на порт 3306
  • Postgres: 54320 → Перенаправление на порт 5432
Оцените статью