Laravel/Homestead в качестве убийцы Denwer

Dec 6, 12:19 pm Категория:

Создание сайтов под Windows в РуНете раньше обычно происходило с использованием Денвера – джентльменского набора вебразработчика. Однако тенденция вымирания рыцарей, принцев и прочих прекрасных мужчин в полной мере распространилась и на джентльменов. Они практически исчезли и Денвер перестал развиваться: на сайте предлагается 3-я версия с древним софтом. Выбранный мной Larave требует PHP старше 5.5.9, а мне предлагают 5.3.13. Правда сам Laravel предлагает нечто по имени Homestead, которое должно решить все проблемы. Попробую разобраться.

Если верить описанию, то это виртуальная машина, в которой установлено всё, что нужно для работы с Laravel. Список довольно внушительный:

  • Ubuntu 14.04
  • Git
  • PHP 5.6 / 7.0
  • Xdebug
  • HHVM
  • Nginx
  • MySQL
  • Sqlite3
  • Postgres
  • Composer
  • Node (With PM2, Bower, Grunt, and Gulp)
  • Redis
  • Memcached (PHP 5.x Only)
  • Beanstalkd
  • Laravel Envoy
  • Blackfire Profiler

Сразу обращает на себя внимание наличие 7-й версии PHP и отсутствие Apache. Чтобы стать обладателем этого богатства потребуется установка VirtualBox, Vagrant и PHP или Bash. VirtualBox ставится без вопросов. После установки Vagrant потребуется перезагрузка Windows. Вариант специально устанавливать PHP, чтобы получить PHP для разработки в виртуальной машине мне показался слишком изящным. Гораздо проще поставить gitfor windows и получить консоль. Да и Git потом тоже понадобится.

Если всё установилось, то можно доставать бубен и начинать заманивать Homestead на компьютер. Для начала запускаем Git bash и в нём вводим команду:

  vagrant box add laravel/homestead

У меня после этого иногда выводится вот такое сообщение:

 ==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://atlas.hashicorp.com/laravel/homestead
Vagrant is attempting to interface with the UI in a way that requires
a TTY. Most actions in Vagrant that require a TTY have configuration
switches to disable this requirement. Please do that or run Vagrant
with TTY.

Это слегка не соответствует имеющейся документации и по адресу https://atlas.hashicorp.com/laravel/homestead предлагается ввести команду

   vagrant init laravel/homestead; vagrant up --provider virtualbox

которая и загрузит Vagrant box, заточенный по VirtulBox. При опасности обрыва соединения лучше этой командой не пользоваться, т.к. докачка не работает и процесс может затянуться. Лучше загрузить бокс ручками. Для этого нужно сконструировать примерно такой адрес:

https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.3.3/providers/virtualbox.box

Сконструировать – это значит указать версию сборки. В момент загрузки была актуальна версия 0.3.3. Доступные версии можно узнать по адресу https://atlas.hashicorp.com/laravel/homestead. Сам бокс имеет размер около гигабайта. Загруженный бокс устанавливается командой:

   vagrant box add laravel/homestead  file://c:/Users/username/Downloads/hc-download

В конце команды указывается путь к боксу. Пишут, что могут возникнуть проблемы, если имя пользователя задано кириллицей. Я не смог сходу установить бокс, т.к. Git bash не мог найти бокс на диске D:. После переноса на C: бокс установился.

==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'laravel/homestead' (v0) for provider:
    box: Unpacking necessary files from: file://c:/Users/username/Downloads/hc-download
    box:
==> box: Successfully added box 'laravel/homestead' (v0) for 'virtualbox'!

Теперь клонируем репозиторий. Это лучше делать перейдя в директорию проектов. Т.е. в консоли набираем:

         mkdir ~/WorkPlace
         cd ~/WorkPlace
         git clone https://github.com/laravel/homestead.git Homestead

Если хочется получить 7-й “пых”, то последняя команда должна выглядеть так:

          git clone -b php-7 https://github.com/laravel/homestead.git Homestead

Ну и, наконец

      cd Homestead
      bash init.sh

Если всё сделано правильно, наградой станет сообщение

      Homestead initialized!

К этому моменту я уже скучаю по Денверу, т.к. поиск правильной последовательности команд, гугление хаков и проверка найденного на себе занимает довольно много времени. Ну, всё, можно… переходить к настройке. Но об этом, в следующий раз.

 

Комментарии

2017-08-22 4:36 pm , Оставь комментарий