Laravel Homestead / Vagrant / Virtualbox работает медленно на Windows - PullRequest
0 голосов
/ 31 мая 2018

Я установил Laravel Homestead/Vagrant/Virtualbox на Windows, как сказано на официальном сайте

Но это действительно медленно.Обновление страницы занимает около 5 секунд.

И это не только мое наблюдение. Laracast обсуждает это.

На форуме laracast есть несколько интересных идей, но там беспорядок (извините, Джеффри), трудно понять, какие идеи приняты, а какие отклонены.

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

Из моего опыта - однажды была ситуация, когда окна запускали обновления и принудительно выключали мою систему, и когда она запускалась, это было невероятно быстро (по крайней мере, в 10 раз быстрее), но послеследующий перезапуск снова пошел медленно.Теперь я знаю, что что-то может быть сделано, чтобы ускорить его, это не «slow hardware case», это случай с настройкой программного обеспечения!

Я использую Windows-10 на Intel-Core-i7 с Oracle Virtualbox-5.2.12 ... (все самое последнее и обновлять нечего)

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

NFS означает Network File System, и вам нужно это для скорости.

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

1) На хосте Windows установите плагин, который добавляет поддержку NFS к vagrant в Windows.

$ vagrant plugin install vagrant-winnfsd

2) Перейдите на Homestead.yaml, обычно этосидит в C:\Users\username\Homestead\Homestead.yaml

3) Добавить type: "nfs" в разделе папок следующим образом:

folders:
    - map: ~/code
      to: /home/vagrant/code
      type: "nfs"

4) Выполнить vagrant up --provision

Результат:

Скорость увеличивается, как в @phazei's ответе, с 8 до 2 секунд для каждого запроса, но это намного меньше работы.@phazei's ответ проясняет некоторые фоновые процессы.

Я тестировал его на Windows 10 с Oracle Virtualbox-5.2.12, vagrant версия-2.1.1.

Обратите внимание: Vagrant NFSстраница говорит

Пользователи Windows: папки NFS не работают на хостах Windows.Vagrant проигнорирует ваш запрос на синхронизацию папок NFS в Windows.

Но если у вас есть плагин, вы можете проигнорировать его.

0 голосов
/ 31 мая 2018

На laracasts форуме, автор которого по имени @phazei ответил на него 3 года назад

То, что он сказал, было:

1) на вашем установочном плагине хоста Windows, которыйдобавляет поддержку NFS для vagrant в Windows.

$ vagrant plugin install vagrant-winnfsd

2) найти ваш homestead.rb

Я нашел его в

C: \ Users \ имя пользователя \ Homestead \ scripts

даже при том, что он предложил посмотреть

C: \ Users \ имя пользователя \ AppData \ Roaming \ Composer \ vendor \ laravel \ homestead \ scripts

3)

Найдите раздел, где он уже просматривает настройки ["папки"] и замените его на код nfs.

для меня это было где-то около строки 140.

Итак, я закомментировал все операторы if settings.include? 'folders' ... end

и добавил вместо этого:

    # EDIT:
    # Reorder folders for winnfsd plugin compatilibty
    # see https://github.com/GM-Alex/vagrant-winnfsd/issues/12#issuecomment-78195957
    settings["folders"].sort! { |a,b| a["map"].length <=> b["map"].length }

    # Register All Of The Configured Shared Folders
    if settings.include? 'folders'
        settings["folders"].each do |folder|
          config.vm.synced_folder folder["map"], folder["to"], 
          id: folder["map"],
          :nfs => true,
          :mount_options => ['nolock,vers=3,udp,noatime']
        end
    end

4) Затем перезапустил vagrant с помощью halt / up и загрузки моей страницыСкорость увеличена с 8 до 2 секунд.

Спасибо @phazei.Ваш ответ все еще работает через 3 года.

PS

Я тестировал его на Windows 10 с Oracle Virtualbox-5.2.12, vagrant version-2.1.1.

PPS

Вы можете запуститьvagrant up --provision, это не повлияет на внесенные вами изменения в homestead.rb

...